home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / docs / devel / eiffel / eiffel_p.z / eiffel_p
Tape Archive  |  1993-05-03  |  2.0 MB

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: Tape Archive (archive/tar).

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert Tape Archive (archive/tar) magic Supported
100% file tar archive default
99% file tar archive (V7), file ep/, mode 2777 , uid 200 , gid 13 , size 0 , seconds 5311420311 default
98% file data default
100% TrID Sybase iAnywhere database files default (weak)
100% siegfried x-fmt/265 Tape Archive Format default
100% lsar Tar default
100% disktype Pre-POSIX tar archive default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 65 70 2f 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |ep/.....|........|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000060| 00 00 00 00 20 20 32 37 | 37 37 20 00 20 20 20 32 |.... 27|77 . 2|
|00000070| 30 30 20 00 20 20 20 20 | 31 33 20 00 20 20 20 20 |00 . |13 . |
|00000080| 20 20 20 20 20 20 30 20 | 20 35 33 31 31 34 32 30 | 0 | 5311420|
|00000090| 33 31 31 20 20 20 34 34 | 32 36 00 20 00 00 00 00 |311 44|26. ....|
|000000a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000100| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000110| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000120| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000130| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000140| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000150| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000160| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000170| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000180| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000190| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000200| 65 70 2f 53 79 73 74 65 | 6d 2e 63 00 00 00 00 00 |ep/Syste|m.c.....|
|00000210| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000220| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000230| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000240| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000250| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000260| 00 00 00 00 20 20 20 36 | 34 34 20 00 20 20 20 32 |.... 6|44 . 2|
|00000270| 30 30 20 00 20 20 20 20 | 31 33 20 00 20 20 20 20 |00 . |13 . |
|00000280| 20 20 20 36 34 30 34 20 | 20 35 33 31 31 34 32 30 | 6404 | 5311420|
|00000290| 32 37 35 20 20 20 36 31 | 33 32 00 20 00 00 00 00 |275 61|32. ....|
|000002a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000002b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000002c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000002d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000002e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000002f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000300| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000310| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000320| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000330| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000340| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000350| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000360| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000370| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000380| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000390| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000003a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000003b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000003c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000003d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000003e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000003f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000400| 2f 2a 20 24 49 64 3a 20 | 53 79 73 74 65 6d 2e 63 |/* $Id: |System.c|
|00000410| 2c 76 20 31 2e 36 20 31 | 39 39 32 2f 30 35 2f 30 |,v 1.6 1|992/05/0|
|00000420| 35 20 31 33 3a 31 39 3a | 30 35 20 67 72 6f 73 63 |5 13:19:|05 grosc|
|00000430| 68 20 72 65 6c 20 24 20 | 2a 2f 0a 0a 2f 2a 20 24 |h rel $ |*/../* $|
|00000440| 4c 6f 67 3a 0a 20 2a 2f | 0a 0a 2f 2a 20 49 63 68 |Log:. */|../* Ich|
|00000450| 2c 20 44 6f 6b 74 6f 72 | 20 4a 6f 73 65 66 20 47 |, Doktor| Josef G|
|00000460| 72 6f 73 63 68 2c 20 49 | 6e 66 6f 72 6d 61 74 69 |rosch, I|nformati|
|00000470| 6b 65 72 2c 20 4a 61 6e | 2e 20 31 39 39 32 20 2a |ker, Jan|. 1992 *|
|00000480| 2f 0a 0a 2f 2a 20 69 6e | 74 65 72 66 61 63 65 20 |/../* in|terface |
|00000490| 66 6f 72 20 6d 61 63 68 | 69 6e 65 20 64 65 70 65 |for mach|ine depe|
|000004a0| 6e 64 65 6e 63 69 65 73 | 20 2a 2f 0a 0a 2f 2a 20 |ndencies| */../* |
|000004b0| 53 65 65 20 74 68 65 20 | 68 65 61 64 65 72 20 66 |See the |header f|
|000004c0| 69 6c 65 20 53 79 73 74 | 65 6d 2e 68 20 66 6f 72 |ile Syst|em.h for|
|000004d0| 20 63 6f 6d 6d 65 6e 74 | 73 20 63 6f 6e 63 65 72 | comment|s concer|
|000004e0| 6e 69 6e 67 20 74 68 65 | 20 65 78 74 65 72 6e 61 |ning the| externa|
|000004f0| 6c 20 72 6f 75 74 69 6e | 65 73 21 09 2a 2f 0a 0a |l routin|es!.*/..|
|00000500| 2f 2a 20 63 6f 6d 70 69 | 6c 61 74 69 6f 6e 20 77 |/* compi|lation w|
|00000510| 69 74 68 20 74 68 65 20 | 6f 70 74 69 6f 6e 20 2d |ith the |option -|
|00000520| 44 55 4e 49 58 20 75 73 | 65 73 20 55 4e 49 58 20 |DUNIX us|es UNIX |
|00000530| 73 79 73 74 65 6d 20 63 | 61 6c 6c 73 20 66 6f 72 |system c|alls for|
|00000540| 20 49 4f 20 28 65 66 66 | 69 63 69 65 6e 74 29 2c | IO (eff|icient),|
|00000550| 0a 20 20 20 6f 74 68 65 | 72 77 69 73 65 20 74 68 |. othe|rwise th|
|00000560| 65 20 43 20 6c 69 62 72 | 61 72 79 20 72 6f 75 74 |e C libr|ary rout|
|00000570| 69 6e 65 73 20 61 72 65 | 20 75 73 65 64 20 66 6f |ines are| used fo|
|00000580| 72 20 49 4f 20 28 70 6f | 72 74 61 62 6c 65 29 2e |r IO (po|rtable).|
|00000590| 09 09 09 2a 2f 0a 0a 73 | 74 61 74 69 63 20 63 68 |...*/..s|tatic ch|
|000005a0| 61 72 20 72 63 73 69 64 | 20 5b 5d 20 3d 20 22 24 |ar rcsid| [] = "$|
|000005b0| 49 64 3a 20 53 79 73 74 | 65 6d 2e 63 2c 76 20 31 |Id: Syst|em.c,v 1|
|000005c0| 2e 36 20 31 39 39 32 2f | 30 35 2f 30 35 20 31 33 |.6 1992/|05/05 13|
|000005d0| 3a 31 39 3a 30 35 20 67 | 72 6f 73 63 68 20 72 65 |:19:05 g|rosch re|
|000005e0| 6c 20 24 22 3b 0a 0a 23 | 20 69 6e 63 6c 75 64 65 |l $";..#| include|
|000005f0| 20 22 53 79 73 74 65 6d | 2e 68 22 0a 0a 23 20 69 | "System|.h"..# i|
|00000600| 66 64 65 66 20 6d 36 38 | 30 30 30 0a 23 20 64 65 |fdef m68|000.# de|
|00000610| 66 69 6e 65 20 68 7a 20 | 35 30 0a 23 20 65 6c 73 |fine hz |50.# els|
|00000620| 65 0a 23 20 64 65 66 69 | 6e 65 20 68 7a 20 36 30 |e.# defi|ne hz 60|
|00000630| 0a 23 20 65 6e 64 69 66 | 0a 0a 23 20 69 66 6e 64 |.# endif|..# ifnd|
|00000640| 65 66 20 55 4e 49 58 0a | 0a 23 20 69 6e 63 6c 75 |ef UNIX.|.# inclu|
|00000650| 64 65 20 3c 73 74 64 69 | 6f 2e 68 3e 0a 23 20 64 |de <stdi|o.h>.# d|
|00000660| 65 66 69 6e 65 20 4e 4f | 46 49 4c 45 53 20 33 32 |efine NO|FILES 32|
|00000670| 0a 0a 73 74 61 74 69 63 | 20 63 68 61 72 20 49 73 |..static| char Is|
|00000680| 4c 69 6e 65 42 75 66 66 | 65 72 65 64 20 5b 4e 4f |LineBuff|ered [NO|
|00000690| 46 49 4c 45 53 5d 20 3d | 20 7b 20 31 2c 20 31 2c |FILES] =| { 1, 1,|
|000006a0| 20 31 2c 20 7d 3b 0a 0a | 73 74 61 74 69 63 20 46 | 1, };..|static F|
|000006b0| 49 4c 45 20 2a 09 46 69 | 6c 65 53 74 6f 72 65 20 |ILE *.Fi|leStore |
|000006c0| 5b 4e 4f 46 49 4c 45 53 | 5d 20 3d 20 7b 0a 20 20 |[NOFILES|] = {. |
|000006d0| 20 73 74 64 69 6e 2c 20 | 73 74 64 6f 75 74 2c 20 | stdin, |stdout, |
|000006e0| 73 74 64 65 72 72 2c 20 | 4e 55 4c 4c 2c 20 4e 55 |stderr, |NULL, NU|
|000006f0| 4c 4c 2c 20 4e 55 4c 4c | 2c 20 4e 55 4c 4c 2c 20 |LL, NULL|, NULL, |
|00000700| 4e 55 4c 4c 2c 0a 20 20 | 20 4e 55 4c 4c 2c 20 4e |NULL,. | NULL, N|
|00000710| 55 4c 4c 2c 20 4e 55 4c | 4c 2c 20 4e 55 4c 4c 2c |ULL, NUL|L, NULL,|
|00000720| 20 4e 55 4c 4c 2c 20 4e | 55 4c 4c 2c 20 4e 55 4c | NULL, N|ULL, NUL|
|00000730| 4c 2c 20 4e 55 4c 4c 2c | 0a 20 20 20 4e 55 4c 4c |L, NULL,|. NULL|
|00000740| 2c 20 4e 55 4c 4c 2c 20 | 4e 55 4c 4c 2c 20 4e 55 |, NULL, |NULL, NU|
|00000750| 4c 4c 2c 20 4e 55 4c 4c | 2c 20 4e 55 4c 4c 2c 20 |LL, NULL|, NULL, |
|00000760| 4e 55 4c 4c 2c 20 4e 55 | 4c 4c 2c 0a 20 20 20 4e |NULL, NU|LL,. N|
|00000770| 55 4c 4c 2c 20 4e 55 4c | 4c 2c 20 4e 55 4c 4c 2c |ULL, NUL|L, NULL,|
|00000780| 20 4e 55 4c 4c 2c 20 4e | 55 4c 4c 2c 20 4e 55 4c | NULL, N|ULL, NUL|
|00000790| 4c 2c 20 4e 55 4c 4c 2c | 20 4e 55 4c 4c 2c 0a 7d |L, NULL,| NULL,.}|
|000007a0| 3b 0a 0a 73 74 61 74 69 | 63 20 74 46 69 6c 65 20 |;..stati|c tFile |
|000007b0| 46 69 6c 65 54 6f 49 6e | 74 20 28 46 69 6c 65 29 |FileToIn|t (File)|
|000007c0| 0a 20 20 20 46 49 4c 45 | 20 2a 09 46 69 6c 65 3b |. FILE| *.File;|
|000007d0| 0a 7b 0a 20 20 20 72 65 | 67 69 73 74 65 72 20 69 |.{. re|gister i|
|000007e0| 6e 74 09 66 20 3d 20 66 | 69 6c 65 6e 6f 20 28 46 |nt.f = f|ileno (F|
|000007f0| 69 6c 65 29 3b 0a 20 20 | 20 46 69 6c 65 53 74 6f |ile);. | FileSto|
|00000800| 72 65 20 5b 66 5d 20 3d | 20 46 69 6c 65 3b 0a 20 |re [f] =| File;. |
|00000810| 20 20 72 65 74 75 72 6e | 20 66 3b 0a 7d 0a 0a 73 | return| f;.}..s|
|00000820| 74 61 74 69 63 20 46 49 | 4c 45 20 2a 20 49 6e 74 |tatic FI|LE * Int|
|00000830| 54 6f 46 69 6c 65 20 28 | 46 69 6c 65 29 0a 20 20 |ToFile (|File). |
|00000840| 20 74 46 69 6c 65 09 46 | 69 6c 65 3b 0a 7b 0a 20 | tFile.F|ile;.{. |
|00000850| 20 20 72 65 74 75 72 6e | 20 46 69 6c 65 53 74 6f | return| FileSto|
|00000860| 72 65 20 5b 46 69 6c 65 | 5d 3b 0a 7d 0a 0a 23 20 |re [File|];.}..# |
|00000870| 65 6e 64 69 66 0a 0a 2f | 2a 20 62 69 6e 61 72 79 |endif../|* binary|
|00000880| 20 49 4f 20 2a 2f 0a 0a | 23 20 69 6e 63 6c 75 64 | IO */..|# includ|
|00000890| 65 20 3c 66 63 6e 74 6c | 2e 68 3e 0a 23 20 69 6e |e <fcntl|.h>.# in|
|000008a0| 63 6c 75 64 65 20 3c 73 | 79 73 2f 74 79 70 65 73 |clude <s|ys/types|
|000008b0| 2e 68 3e 0a 23 20 69 6e | 63 6c 75 64 65 20 3c 73 |.h>.# in|clude <s|
|000008c0| 79 73 2f 73 74 61 74 2e | 68 3e 0a 0a 62 6f 6f 6c |ys/stat.|h>..bool|
|000008d0| 20 49 73 43 68 61 72 61 | 63 74 65 72 53 70 65 63 | IsChara|cterSpec|
|000008e0| 69 61 6c 20 28 46 69 6c | 65 29 20 74 46 69 6c 65 |ial (Fil|e) tFile|
|000008f0| 20 46 69 6c 65 3b 0a 7b | 0a 20 20 20 73 74 72 75 | File;.{|. stru|
|00000900| 63 74 20 73 74 61 74 09 | 62 75 66 3b 0a 20 20 20 |ct stat.|buf;. |
|00000910| 28 76 6f 69 64 29 20 66 | 73 74 61 74 20 28 46 69 |(void) f|stat (Fi|
|00000920| 6c 65 2c 20 26 20 62 75 | 66 29 3b 0a 20 20 20 72 |le, & bu|f);. r|
|00000930| 65 74 75 72 6e 20 28 30 | 30 32 30 30 30 30 20 26 |eturn (0|020000 &|
|00000940| 20 62 75 66 2e 73 74 5f | 6d 6f 64 65 29 20 3d 3d | buf.st_|mode) ==|
|00000950| 20 30 30 32 30 30 30 30 | 3b 0a 7d 0a 0a 74 46 69 | 0020000|;.}..tFi|
|00000960| 6c 65 20 4f 70 65 6e 49 | 6e 70 75 74 20 28 46 69 |le OpenI|nput (Fi|
|00000970| 6c 65 4e 61 6d 65 29 0a | 20 20 20 63 68 61 72 20 |leName).| char |
|00000980| 2a 09 46 69 6c 65 4e 61 | 6d 65 3b 0a 7b 0a 23 20 |*.FileNa|me;.{.# |
|00000990| 69 66 6e 64 65 66 20 55 | 4e 49 58 0a 20 20 20 74 |ifndef U|NIX. t|
|000009a0| 46 69 6c 65 20 46 69 6c | 65 20 3d 20 46 69 6c 65 |File Fil|e = File|
|000009b0| 54 6f 49 6e 74 20 28 66 | 6f 70 65 6e 20 28 46 69 |ToInt (f|open (Fi|
|000009c0| 6c 65 4e 61 6d 65 2c 20 | 22 72 22 29 29 3b 0a 20 |leName, |"r"));. |
|000009d0| 20 20 49 73 4c 69 6e 65 | 42 75 66 66 65 72 65 64 | IsLine|Buffered|
|000009e0| 20 5b 46 69 6c 65 5d 20 | 3d 20 49 73 43 68 61 72 | [File] |= IsChar|
|000009f0| 61 63 74 65 72 53 70 65 | 63 69 61 6c 20 28 46 69 |acterSpe|cial (Fi|
|00000a00| 6c 65 29 3b 0a 20 20 20 | 72 65 74 75 72 6e 20 46 |le);. |return F|
|00000a10| 69 6c 65 3b 0a 23 20 65 | 6c 73 65 0a 20 20 20 72 |ile;.# e|lse. r|
|00000a20| 65 74 75 72 6e 20 6f 70 | 65 6e 20 28 46 69 6c 65 |eturn op|en (File|
|00000a30| 4e 61 6d 65 2c 20 4f 5f | 52 44 4f 4e 4c 59 29 3b |Name, O_|RDONLY);|
|00000a40| 0a 23 20 65 6e 64 69 66 | 0a 7d 0a 0a 74 46 69 6c |.# endif|.}..tFil|
|00000a50| 65 20 4f 70 65 6e 4f 75 | 74 70 75 74 20 28 46 69 |e OpenOu|tput (Fi|
|00000a60| 6c 65 4e 61 6d 65 29 0a | 20 20 20 63 68 61 72 20 |leName).| char |
|00000a70| 2a 09 46 69 6c 65 4e 61 | 6d 65 3b 0a 7b 0a 23 20 |*.FileNa|me;.{.# |
|00000a80| 69 66 6e 64 65 66 20 55 | 4e 49 58 0a 20 20 20 72 |ifndef U|NIX. r|
|00000a90| 65 74 75 72 6e 20 46 69 | 6c 65 54 6f 49 6e 74 20 |eturn Fi|leToInt |
|00000aa0| 28 66 6f 70 65 6e 20 28 | 46 69 6c 65 4e 61 6d 65 |(fopen (|FileName|
|00000ab0| 2c 20 22 77 22 29 29 3b | 0a 23 20 65 6c 73 65 0a |, "w"));|.# else.|
|00000ac0| 20 20 20 72 65 74 75 72 | 6e 20 63 72 65 61 74 20 | retur|n creat |
|00000ad0| 28 46 69 6c 65 4e 61 6d | 65 2c 20 30 36 36 36 29 |(FileNam|e, 0666)|
|00000ae0| 3b 0a 23 20 65 6e 64 69 | 66 0a 7d 0a 0a 69 6e 74 |;.# endi|f.}..int|
|00000af0| 20 52 65 61 64 20 28 46 | 69 6c 65 2c 20 42 75 66 | Read (F|ile, Buf|
|00000b00| 66 65 72 2c 20 53 69 7a | 65 29 0a 20 20 20 74 46 |fer, Siz|e). tF|
|00000b10| 69 6c 65 09 46 69 6c 65 | 3b 0a 20 20 20 63 68 61 |ile.File|;. cha|
|00000b20| 72 20 2a 09 42 75 66 66 | 65 72 3b 0a 20 20 20 69 |r *.Buff|er;. i|
|00000b30| 6e 74 09 09 53 69 7a 65 | 3b 0a 7b 0a 23 20 69 66 |nt..Size|;.{.# if|
|00000b40| 6e 64 65 66 20 55 4e 49 | 58 0a 20 20 20 69 66 20 |ndef UNI|X. if |
|00000b50| 28 49 73 4c 69 6e 65 42 | 75 66 66 65 72 65 64 20 |(IsLineB|uffered |
|00000b60| 5b 46 69 6c 65 5d 29 20 | 7b 0a 20 20 20 20 20 20 |[File]) |{. |
|00000b70| 42 75 66 66 65 72 20 5b | 30 5d 20 3d 20 27 5c 30 |Buffer [|0] = '\0|
|00000b80| 27 3b 0a 20 20 20 20 20 | 20 28 76 6f 69 64 29 20 |';. | (void) |
|00000b90| 66 67 65 74 73 20 28 42 | 75 66 66 65 72 2c 20 53 |fgets (B|uffer, S|
|00000ba0| 69 7a 65 2c 20 49 6e 74 | 54 6f 46 69 6c 65 20 28 |ize, Int|ToFile (|
|00000bb0| 46 69 6c 65 29 29 3b 0a | 20 20 20 20 20 20 72 65 |File));.| re|
|00000bc0| 74 75 72 6e 20 73 74 72 | 6c 65 6e 20 28 42 75 66 |turn str|len (Buf|
|00000bd0| 66 65 72 29 3b 0a 20 20 | 20 7d 20 65 6c 73 65 0a |fer);. | } else.|
|00000be0| 20 20 20 20 20 20 72 65 | 74 75 72 6e 20 66 72 65 | re|turn fre|
|00000bf0| 61 64 20 28 42 75 66 66 | 65 72 2c 20 31 2c 20 53 |ad (Buff|er, 1, S|
|00000c00| 69 7a 65 2c 20 49 6e 74 | 54 6f 46 69 6c 65 20 28 |ize, Int|ToFile (|
|00000c10| 46 69 6c 65 29 29 3b 0a | 23 20 65 6c 73 65 0a 20 |File));.|# else. |
|00000c20| 20 20 72 65 74 75 72 6e | 20 72 65 61 64 20 28 46 | return| read (F|
|00000c30| 69 6c 65 2c 20 42 75 66 | 66 65 72 2c 20 53 69 7a |ile, Buf|fer, Siz|
|00000c40| 65 29 3b 0a 23 20 65 6e | 64 69 66 0a 7d 0a 0a 69 |e);.# en|dif.}..i|
|00000c50| 6e 74 20 57 72 69 74 65 | 20 28 46 69 6c 65 2c 20 |nt Write| (File, |
|00000c60| 42 75 66 66 65 72 2c 20 | 53 69 7a 65 29 0a 20 20 |Buffer, |Size). |
|00000c70| 20 74 46 69 6c 65 09 46 | 69 6c 65 3b 0a 20 20 20 | tFile.F|ile;. |
|00000c80| 63 68 61 72 20 2a 09 42 | 75 66 66 65 72 3b 0a 20 |char *.B|uffer;. |
|00000c90| 20 20 69 6e 74 09 09 53 | 69 7a 65 3b 0a 7b 0a 23 | int..S|ize;.{.#|
|00000ca0| 20 69 66 6e 64 65 66 20 | 55 4e 49 58 0a 20 20 20 | ifndef |UNIX. |
|00000cb0| 72 65 74 75 72 6e 20 66 | 77 72 69 74 65 20 28 42 |return f|write (B|
|00000cc0| 75 66 66 65 72 2c 20 31 | 2c 20 53 69 7a 65 2c 20 |uffer, 1|, Size, |
|00000cd0| 49 6e 74 54 6f 46 69 6c | 65 20 28 46 69 6c 65 29 |IntToFil|e (File)|
|00000ce0| 29 3b 0a 23 20 65 6c 73 | 65 0a 20 20 20 72 65 74 |);.# els|e. ret|
|00000cf0| 75 72 6e 20 77 72 69 74 | 65 20 28 46 69 6c 65 2c |urn writ|e (File,|
|00000d00| 20 42 75 66 66 65 72 2c | 20 53 69 7a 65 29 3b 0a | Buffer,| Size);.|
|00000d10| 23 20 65 6e 64 69 66 0a | 7d 0a 0a 76 6f 69 64 20 |# endif.|}..void |
|00000d20| 43 6c 6f 73 65 20 28 46 | 69 6c 65 29 0a 20 20 20 |Close (F|ile). |
|00000d30| 74 46 69 6c 65 09 46 69 | 6c 65 3b 0a 7b 0a 23 20 |tFile.Fi|le;.{.# |
|00000d40| 69 66 6e 64 65 66 20 55 | 4e 49 58 0a 20 20 20 28 |ifndef U|NIX. (|
|00000d50| 76 6f 69 64 29 20 66 63 | 6c 6f 73 65 20 28 49 6e |void) fc|lose (In|
|00000d60| 74 54 6f 46 69 6c 65 20 | 28 46 69 6c 65 29 29 3b |tToFile |(File));|
|00000d70| 0a 23 20 65 6c 73 65 0a | 20 20 20 28 76 6f 69 64 |.# else.| (void|
|00000d80| 29 20 63 6c 6f 73 65 20 | 28 46 69 6c 65 29 3b 0a |) close |(File);.|
|00000d90| 23 20 65 6e 64 69 66 0a | 7d 0a 0a 2f 2a 20 63 61 |# endif.|}../* ca|
|00000da0| 6c 6c 73 20 6f 74 68 65 | 72 20 74 68 61 6e 20 49 |lls othe|r than I|
|00000db0| 4f 20 2a 2f 0a 0a 2f 2a | 20 23 20 69 6e 63 6c 75 |O */../*| # inclu|
|00000dc0| 64 65 20 3c 6d 61 6c 6c | 6f 63 2e 68 3e 20 2a 2f |de <mall|oc.h> */|
|00000dd0| 0a 0a 63 68 61 72 20 2a | 20 53 79 73 41 6c 6c 6f |..char *| SysAllo|
|00000de0| 63 20 28 42 79 74 65 43 | 6f 75 6e 74 29 20 6c 6f |c (ByteC|ount) lo|
|00000df0| 6e 67 20 42 79 74 65 43 | 6f 75 6e 74 3b 20 7b 20 |ng ByteC|ount; { |
|00000e00| 72 65 74 75 72 6e 20 28 | 63 68 61 72 20 2a 29 20 |return (|char *) |
|00000e10| 6d 61 6c 6c 6f 63 20 28 | 28 75 6e 73 69 67 6e 65 |malloc (|(unsigne|
|00000e20| 64 29 20 42 79 74 65 43 | 6f 75 6e 74 29 3b 20 7d |d) ByteC|ount); }|
|00000e30| 0a 0a 23 20 69 6e 63 6c | 75 64 65 20 3c 73 79 73 |..# incl|ude <sys|
|00000e40| 2f 74 69 6d 65 73 2e 68 | 3e 0a 0a 6c 6f 6e 67 20 |/times.h|>..long |
|00000e50| 54 69 6d 65 20 28 29 0a | 7b 0a 20 20 20 73 74 72 |Time ().|{. str|
|00000e60| 75 63 74 20 74 6d 73 09 | 62 75 66 66 65 72 3b 0a |uct tms.|buffer;.|
|00000e70| 20 20 20 28 76 6f 69 64 | 29 20 74 69 6d 65 73 20 | (void|) times |
|00000e80| 28 26 20 62 75 66 66 65 | 72 29 3b 0a 20 20 20 72 |(& buffe|r);. r|
|00000e90| 65 74 75 72 6e 20 28 62 | 75 66 66 65 72 2e 74 6d |eturn (b|uffer.tm|
|00000ea0| 73 5f 75 74 69 6d 65 20 | 2b 20 62 75 66 66 65 72 |s_utime |+ buffer|
|00000eb0| 2e 74 6d 73 5f 73 74 69 | 6d 65 29 20 2a 20 31 30 |.tms_sti|me) * 10|
|00000ec0| 30 30 20 2f 20 68 7a 3b | 0a 7d 0a 0a 73 74 61 74 |00 / hz;|.}..stat|
|00000ed0| 69 63 20 69 6e 74 09 61 | 72 67 63 3b 0a 73 74 61 |ic int.a|rgc;.sta|
|00000ee0| 74 69 63 20 63 68 61 72 | 20 2a 20 2a 09 61 72 67 |tic char| * *.arg|
|00000ef0| 76 3b 0a 0a 69 6e 74 20 | 47 65 74 41 72 67 43 6f |v;..int |GetArgCo|
|00000f00| 75 6e 74 20 28 29 0a 7b | 0a 20 20 20 72 65 74 75 |unt ().{|. retu|
|00000f10| 72 6e 20 61 72 67 63 3b | 0a 7d 0a 0a 76 6f 69 64 |rn argc;|.}..void|
|00000f20| 20 47 65 74 41 72 67 75 | 6d 65 6e 74 20 28 41 72 | GetArgu|ment (Ar|
|00000f30| 67 4e 75 6d 2c 20 41 72 | 67 75 6d 65 6e 74 29 0a |gNum, Ar|gument).|
|00000f40| 20 20 20 69 6e 74 09 09 | 41 72 67 4e 75 6d 3b 0a | int..|ArgNum;.|
|00000f50| 20 20 20 63 68 61 72 20 | 2a 09 41 72 67 75 6d 65 | char |*.Argume|
|00000f60| 6e 74 3b 0a 7b 0a 20 20 | 20 72 65 67 69 73 74 65 |nt;.{. | registe|
|00000f70| 72 20 69 6e 74 09 69 20 | 3d 20 30 3b 0a 20 20 20 |r int.i |= 0;. |
|00000f80| 66 6f 72 20 28 3b 3b 20 | 69 20 2b 2b 29 0a 20 20 |for (;; |i ++). |
|00000f90| 20 20 20 20 69 66 20 28 | 28 41 72 67 75 6d 65 6e | if (|(Argumen|
|00000fa0| 74 20 5b 69 5d 20 3d 20 | 61 72 67 76 20 5b 41 72 |t [i] = |argv [Ar|
|00000fb0| 67 4e 75 6d 5d 5b 69 5d | 29 20 3d 3d 20 27 5c 30 |gNum][i]|) == '\0|
|00000fc0| 27 29 20 72 65 74 75 72 | 6e 3b 0a 7d 0a 0a 76 6f |') retur|n;.}..vo|
|00000fd0| 69 64 20 50 75 74 41 72 | 67 73 20 28 41 72 67 63 |id PutAr|gs (Argc|
|00000fe0| 2c 20 41 72 67 76 29 0a | 20 20 20 69 6e 74 09 09 |, Argv).| int..|
|00000ff0| 41 72 67 63 3b 0a 20 20 | 20 63 68 61 72 20 2a 20 |Argc;. | char * |
|00001000| 2a 09 41 72 67 76 3b 0a | 7b 0a 20 20 20 61 72 67 |*.Argv;.|{. arg|
|00001010| 63 20 3d 20 41 72 67 63 | 3b 0a 20 20 20 61 72 67 |c = Argc|;. arg|
|00001020| 76 20 3d 20 41 72 67 76 | 3b 0a 7d 0a 0a 23 20 69 |v = Argv|;.}..# i|
|00001030| 6e 63 6c 75 64 65 20 3c | 65 72 72 6e 6f 2e 68 3e |nclude <|errno.h>|
|00001040| 0a 0a 69 6e 74 20 45 72 | 72 4e 75 6d 20 28 29 20 |..int Er|rNum () |
|00001050| 7b 20 72 65 74 75 72 6e | 20 65 72 72 6e 6f 3b 20 |{ return| errno; |
|00001060| 7d 0a 0a 69 6e 74 20 53 | 79 73 74 65 6d 20 28 53 |}..int S|ystem (S|
|00001070| 74 72 69 6e 67 29 20 63 | 68 61 72 20 2a 20 53 74 |tring) c|har * St|
|00001080| 72 69 6e 67 3b 20 7b 20 | 72 65 74 75 72 6e 20 73 |ring; { |return s|
|00001090| 79 73 74 65 6d 20 28 53 | 74 72 69 6e 67 29 3b 20 |ystem (S|tring); |
|000010a0| 7d 0a 0a 65 78 74 65 72 | 6e 20 76 6f 69 64 20 65 |}..exter|n void e|
|000010b0| 78 69 74 20 28 29 3b 0a | 0a 76 6f 69 64 20 45 78 |xit ();.|.void Ex|
|000010c0| 69 74 20 28 53 74 61 74 | 75 73 29 20 69 6e 74 20 |it (Stat|us) int |
|000010d0| 53 74 61 74 75 73 3b 20 | 7b 20 65 78 69 74 20 28 |Status; |{ exit (|
|000010e0| 53 74 61 74 75 73 29 3b | 20 7d 0a 0a 76 6f 69 64 |Status);| }..void|
|000010f0| 20 42 45 47 49 4e 5f 53 | 79 73 74 65 6d 20 28 29 | BEGIN_S|ystem ()|
|00001100| 20 7b 7d 0a 00 00 00 00 | 00 00 00 00 00 00 00 00 | {}.....|........|
|00001110| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001120| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001130| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001140| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001150| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001160| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001170| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001180| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001190| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000011a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000011b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000011c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000011d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000011e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000011f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001200| 65 70 2f 53 79 73 74 65 | 6d 2e 68 00 00 00 00 00 |ep/Syste|m.h.....|
|00001210| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001220| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001230| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001240| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001250| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001260| 00 00 00 00 20 20 20 36 | 34 34 20 00 20 20 20 32 |.... 6|44 . 2|
|00001270| 30 30 20 00 20 20 20 20 | 31 33 20 00 20 20 20 20 |00 . |13 . |
|00001280| 20 20 20 35 30 36 32 20 | 20 35 33 31 31 34 32 30 | 5062 | 5311420|
|00001290| 32 37 35 20 20 20 36 31 | 33 36 00 20 00 00 00 00 |275 61|36. ....|
|000012a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000012b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000012c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000012d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000012e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000012f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001300| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001310| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001320| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001330| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001340| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001350| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001360| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001370| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001380| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001390| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000013a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000013b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000013c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000013d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000013e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000013f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001400| 23 20 69 66 6e 64 65 66 | 20 79 79 53 79 73 74 65 |# ifndef| yySyste|
|00001410| 6d 0a 23 20 64 65 66 69 | 6e 65 20 79 79 53 79 73 |m.# defi|ne yySys|
|00001420| 74 65 6d 0a 0a 2f 2a 20 | 24 49 64 3a 20 53 79 73 |tem../* |$Id: Sys|
|00001430| 74 65 6d 2e 68 2c 76 20 | 31 2e 33 20 31 39 39 32 |tem.h,v |1.3 1992|
|00001440| 2f 30 32 2f 30 34 20 31 | 34 3a 30 31 3a 33 39 20 |/02/04 1|4:01:39 |
|00001450| 67 72 6f 73 63 68 20 72 | 65 6c 20 24 20 2a 2f 0a |grosch r|el $ */.|
|00001460| 0a 2f 2a 20 24 4c 6f 67 | 3a 0a 20 2a 2f 0a 0a 2f |./* $Log|:. */../|
|00001470| 2a 20 49 63 68 2c 20 44 | 6f 6b 74 6f 72 20 4a 6f |* Ich, D|oktor Jo|
|00001480| 73 65 66 20 47 72 6f 73 | 63 68 2c 20 49 6e 66 6f |sef Gros|ch, Info|
|00001490| 72 6d 61 74 69 6b 65 72 | 2c 20 4a 61 6e 2e 20 31 |rmatiker|, Jan. 1|
|000014a0| 39 39 32 20 2a 2f 0a 0a | 23 20 69 66 64 65 66 20 |992 */..|# ifdef |
|000014b0| 5f 5f 53 54 44 43 5f 5f | 0a 23 20 64 65 66 69 6e |__STDC__|.# defin|
|000014c0| 65 20 41 52 47 53 28 70 | 61 72 61 6d 65 74 65 72 |e ARGS(p|arameter|
|000014d0| 73 29 09 70 61 72 61 6d | 65 74 65 72 73 0a 23 20 |s).param|eters.# |
|000014e0| 65 6c 73 65 0a 23 20 64 | 65 66 69 6e 65 20 41 52 |else.# d|efine AR|
|000014f0| 47 53 28 70 61 72 61 6d | 65 74 65 72 73 29 09 28 |GS(param|eters).(|
|00001500| 29 0a 23 20 65 6e 64 69 | 66 0a 0a 2f 2a 20 69 6e |).# endi|f../* in|
|00001510| 74 65 72 66 61 63 65 20 | 66 6f 72 20 6d 61 63 68 |terface |for mach|
|00001520| 69 6e 65 20 64 65 70 65 | 6e 64 65 6e 63 69 65 73 |ine depe|ndencies|
|00001530| 20 2a 2f 0a 0a 23 20 69 | 66 6e 64 65 66 20 62 6f | */..# i|fndef bo|
|00001540| 6f 6c 0a 23 20 64 65 66 | 69 6e 65 20 62 6f 6f 6c |ol.# def|ine bool|
|00001550| 20 63 68 61 72 0a 23 20 | 65 6e 64 69 66 0a 23 20 | char.# |endif.# |
|00001560| 64 65 66 69 6e 65 20 74 | 46 69 6c 65 20 69 6e 74 |define t|File int|
|00001570| 0a 0a 2f 2a 20 62 69 6e | 61 72 79 20 49 4f 20 2a |../* bin|ary IO *|
|00001580| 2f 0a 0a 65 78 74 65 72 | 6e 20 74 46 69 6c 65 09 |/..exter|n tFile.|
|00001590| 4f 70 65 6e 49 6e 70 75 | 74 09 41 52 47 53 28 28 |OpenInpu|t.ARGS((|
|000015a0| 63 68 61 72 20 2a 20 46 | 69 6c 65 4e 61 6d 65 29 |char * F|ileName)|
|000015b0| 29 3b 0a 09 09 09 2f 2a | 20 4f 70 65 6e 73 20 74 |);..../*| Opens t|
|000015c0| 68 65 20 66 69 6c 65 20 | 77 68 6f 73 65 20 6e 61 |he file |whose na|
|000015d0| 6d 65 20 69 73 20 67 69 | 76 65 6e 20 62 79 20 74 |me is gi|ven by t|
|000015e0| 68 65 09 2a 2f 0a 09 09 | 09 2f 2a 20 73 74 72 69 |he.*/...|./* stri|
|000015f0| 6e 67 20 70 61 72 61 6d | 65 74 65 72 20 27 46 69 |ng param|eter 'Fi|
|00001600| 6c 65 4e 61 6d 65 27 20 | 66 6f 72 20 69 6e 70 75 |leName' |for inpu|
|00001610| 74 2e 09 2a 2f 0a 09 09 | 09 2f 2a 20 52 65 74 75 |t..*/...|./* Retu|
|00001620| 72 6e 73 20 61 6e 20 69 | 6e 74 65 67 65 72 20 66 |rns an i|nteger f|
|00001630| 69 6c 65 20 64 65 73 63 | 72 69 70 74 6f 72 2e 09 |ile desc|riptor..|
|00001640| 09 2a 2f 0a 0a 65 78 74 | 65 72 6e 20 74 46 69 6c |.*/..ext|ern tFil|
|00001650| 65 09 4f 70 65 6e 4f 75 | 74 70 75 74 09 41 52 47 |e.OpenOu|tput.ARG|
|00001660| 53 28 28 63 68 61 72 20 | 2a 20 46 69 6c 65 4e 61 |S((char |* FileNa|
|00001670| 6d 65 29 29 3b 0a 09 09 | 09 2f 2a 20 4f 70 65 6e |me));...|./* Open|
|00001680| 73 20 74 68 65 20 66 69 | 6c 65 20 77 68 6f 73 65 |s the fi|le whose|
|00001690| 20 6e 61 6d 65 20 69 73 | 20 67 69 76 65 6e 20 62 | name is| given b|
|000016a0| 79 20 74 68 65 09 2a 2f | 0a 09 09 09 2f 2a 20 73 |y the.*/|..../* s|
|000016b0| 74 72 69 6e 67 20 70 61 | 72 61 6d 65 74 65 72 20 |tring pa|rameter |
|000016c0| 27 46 69 6c 65 4e 61 6d | 65 27 20 66 6f 72 20 6f |'FileNam|e' for o|
|000016d0| 75 74 70 75 74 2e 09 2a | 2f 0a 09 09 09 2f 2a 20 |utput..*|/..../* |
|000016e0| 52 65 74 75 72 6e 73 20 | 61 6e 20 69 6e 74 65 67 |Returns |an integ|
|000016f0| 65 72 20 66 69 6c 65 20 | 64 65 73 63 72 69 70 74 |er file |descript|
|00001700| 6f 72 2e 09 09 2a 2f 0a | 0a 65 78 74 65 72 6e 20 |or...*/.|.extern |
|00001710| 69 6e 74 09 52 65 61 64 | 09 09 41 52 47 53 28 28 |int.Read|..ARGS((|
|00001720| 74 46 69 6c 65 20 46 69 | 6c 65 2c 20 63 68 61 72 |tFile Fi|le, char|
|00001730| 20 2a 20 42 75 66 66 65 | 72 2c 20 69 6e 74 20 53 | * Buffe|r, int S|
|00001740| 69 7a 65 29 29 3b 0a 09 | 09 09 2f 2a 20 52 65 61 |ize));..|../* Rea|
|00001750| 64 73 20 27 53 69 7a 65 | 27 20 62 79 74 65 73 20 |ds 'Size|' bytes |
|00001760| 66 72 6f 6d 20 66 69 6c | 65 20 27 74 46 69 6c 65 |from fil|e 'tFile|
|00001770| 27 20 61 6e 64 09 2a 2f | 0a 09 09 09 2f 2a 20 73 |' and.*/|..../* s|
|00001780| 74 6f 72 65 73 20 74 68 | 65 6d 20 69 6e 20 61 20 |tores th|em in a |
|00001790| 62 75 66 66 65 72 20 73 | 74 61 72 74 69 6e 67 20 |buffer s|tarting |
|000017a0| 61 74 20 61 64 64 72 65 | 73 73 09 2a 2f 0a 09 09 |at addre|ss.*/...|
|000017b0| 09 2f 2a 20 27 42 75 66 | 66 65 72 27 2e 09 09 09 |./* 'Buf|fer'....|
|000017c0| 09 09 2a 2f 0a 09 09 09 | 2f 2a 20 52 65 74 75 72 |..*/....|/* Retur|
|000017d0| 6e 73 20 74 68 65 20 6e | 75 6d 62 65 72 20 6f 66 |ns the n|umber of|
|000017e0| 20 62 79 74 65 73 20 61 | 63 74 75 61 6c 6c 79 20 | bytes a|ctually |
|000017f0| 72 65 61 64 2e 09 2a 2f | 0a 0a 65 78 74 65 72 6e |read..*/|..extern|
|00001800| 20 69 6e 74 09 57 72 69 | 74 65 09 09 41 52 47 53 | int.Wri|te..ARGS|
|00001810| 28 28 74 46 69 6c 65 20 | 46 69 6c 65 2c 20 63 68 |((tFile |File, ch|
|00001820| 61 72 20 2a 20 42 75 66 | 66 65 72 2c 20 69 6e 74 |ar * Buf|fer, int|
|00001830| 20 53 69 7a 65 29 29 3b | 0a 09 09 09 2f 2a 20 57 | Size));|..../* W|
|00001840| 72 69 74 65 73 20 27 53 | 69 7a 65 27 20 62 79 74 |rites 'S|ize' byt|
|00001850| 65 73 20 66 72 6f 6d 20 | 61 20 62 75 66 66 65 72 |es from |a buffer|
|00001860| 20 73 74 61 72 74 69 6e | 67 09 2a 2f 0a 09 09 09 | startin|g.*/....|
|00001870| 2f 2a 20 61 74 20 61 64 | 64 72 65 73 73 20 27 42 |/* at ad|dress 'B|
|00001880| 75 66 66 65 72 27 20 74 | 6f 20 66 69 6c 65 20 27 |uffer' t|o file '|
|00001890| 74 46 69 6c 65 27 2e 09 | 09 2a 2f 0a 09 09 09 2f |tFile'..|.*/..../|
|000018a0| 2a 20 52 65 74 75 72 6e | 73 20 74 68 65 20 6e 75 |* Return|s the nu|
|000018b0| 6d 62 65 72 20 6f 66 20 | 62 79 74 65 73 20 61 63 |mber of |bytes ac|
|000018c0| 74 75 61 6c 6c 79 20 77 | 72 69 74 74 65 6e 2e 2a |tually w|ritten.*|
|000018d0| 2f 0a 0a 65 78 74 65 72 | 6e 20 76 6f 69 64 09 43 |/..exter|n void.C|
|000018e0| 6c 6f 73 65 09 09 41 52 | 47 53 28 28 74 46 69 6c |lose..AR|GS((tFil|
|000018f0| 65 20 46 69 6c 65 29 29 | 3b 0a 09 09 09 2f 2a 20 |e File))|;..../* |
|00001900| 43 6c 6f 73 65 73 20 66 | 69 6c 65 20 27 74 46 69 |Closes f|ile 'tFi|
|00001910| 6c 65 27 2e 09 09 09 09 | 2a 2f 0a 0a 65 78 74 65 |le'.....|*/..exte|
|00001920| 72 6e 20 62 6f 6f 6c 20 | 49 73 43 68 61 72 61 63 |rn bool |IsCharac|
|00001930| 74 65 72 53 70 65 63 69 | 61 6c 09 41 52 47 53 28 |terSpeci|al.ARGS(|
|00001940| 28 74 46 69 6c 65 20 46 | 69 6c 65 29 29 3b 0a 09 |(tFile F|ile));..|
|00001950| 09 09 2f 2a 20 52 65 74 | 75 72 6e 73 20 54 52 55 |../* Ret|urns TRU|
|00001960| 45 20 77 68 65 6e 20 66 | 69 6c 65 20 27 74 46 69 |E when f|ile 'tFi|
|00001970| 6c 65 27 20 69 73 20 63 | 6f 6e 6e 65 63 74 65 64 |le' is c|onnected|
|00001980| 09 2a 2f 0a 09 09 09 2f | 2a 20 74 6f 20 61 20 63 |.*/..../|* to a c|
|00001990| 68 61 72 61 63 74 65 72 | 20 64 65 76 69 63 65 20 |haracter| device |
|000019a0| 6c 69 6b 65 20 61 20 74 | 65 72 6d 69 6e 61 6c 2e |like a t|erminal.|
|000019b0| 09 2a 2f 0a 0a 0a 2f 2a | 20 63 61 6c 6c 73 20 6f |.*/.../*| calls o|
|000019c0| 74 68 65 72 20 74 68 61 | 6e 20 49 4f 20 2a 2f 0a |ther tha|n IO */.|
|000019d0| 0a 65 78 74 65 72 6e 20 | 63 68 61 72 20 2a 09 53 |.extern |char *.S|
|000019e0| 79 73 41 6c 6c 6f 63 09 | 41 52 47 53 28 28 6c 6f |ysAlloc.|ARGS((lo|
|000019f0| 6e 67 20 42 79 74 65 43 | 6f 75 6e 74 29 29 3b 0a |ng ByteC|ount));.|
|00001a00| 09 09 09 2f 2a 20 52 65 | 74 75 72 6e 73 20 61 20 |.../* Re|turns a |
|00001a10| 70 6f 69 6e 74 65 72 20 | 74 6f 20 64 79 6e 61 6d |pointer |to dynam|
|00001a20| 69 63 61 6c 6c 79 20 61 | 6c 6c 6f 63 61 74 65 64 |ically a|llocated|
|00001a30| 09 2a 2f 0a 09 09 09 2f | 2a 20 6d 65 6d 6f 72 79 |.*/..../|* memory|
|00001a40| 20 73 70 61 63 65 20 6f | 66 20 73 69 7a 65 20 27 | space o|f size '|
|00001a50| 42 79 74 65 43 6f 75 6e | 74 27 20 62 79 74 65 73 |ByteCoun|t' bytes|
|00001a60| 2e 09 2a 2f 0a 09 09 09 | 2f 2a 20 52 65 74 75 72 |..*/....|/* Retur|
|00001a70| 6e 73 20 4e 49 4c 20 69 | 66 20 73 70 61 63 65 20 |ns NIL i|f space |
|00001a80| 69 73 20 65 78 68 61 75 | 73 74 65 64 2e 09 09 2a |is exhau|sted...*|
|00001a90| 2f 0a 0a 65 78 74 65 72 | 6e 20 6c 6f 6e 67 09 54 |/..exter|n long.T|
|00001aa0| 69 6d 65 09 09 28 29 3b | 0a 09 09 09 2f 2a 20 52 |ime..();|..../* R|
|00001ab0| 65 74 75 72 6e 73 20 63 | 6f 6e 73 75 6d 65 64 20 |eturns c|onsumed |
|00001ac0| 63 70 75 2d 74 69 6d 65 | 20 69 6e 20 6d 69 6c 6c |cpu-time| in mill|
|00001ad0| 69 73 65 63 6f 6e 64 73 | 2e 09 2a 2f 0a 0a 65 78 |iseconds|..*/..ex|
|00001ae0| 74 65 72 6e 20 69 6e 74 | 09 47 65 74 41 72 67 43 |tern int|.GetArgC|
|00001af0| 6f 75 6e 74 09 28 29 3b | 0a 09 09 09 2f 2a 20 52 |ount.();|..../* R|
|00001b00| 65 74 75 72 6e 73 20 6e | 75 6d 62 65 72 20 6f 66 |eturns n|umber of|
|00001b10| 20 61 72 67 75 6d 65 6e | 74 73 2e 09 09 09 2a 2f | argumen|ts....*/|
|00001b20| 0a 0a 65 78 74 65 72 6e | 20 76 6f 69 64 09 47 65 |..extern| void.Ge|
|00001b30| 74 41 72 67 75 6d 65 6e | 74 09 41 52 47 53 28 28 |tArgumen|t.ARGS((|
|00001b40| 69 6e 74 20 41 72 67 4e | 75 6d 2c 20 63 68 61 72 |int ArgN|um, char|
|00001b50| 20 2a 20 41 72 67 75 6d | 65 6e 74 29 29 3b 0a 09 | * Argum|ent));..|
|00001b60| 09 09 2f 2a 20 53 74 6f | 72 65 73 20 61 20 73 74 |../* Sto|res a st|
|00001b70| 72 69 6e 67 2d 76 61 6c | 75 65 64 20 61 72 67 75 |ring-val|ued argu|
|00001b80| 6d 65 6e 74 20 77 68 6f | 73 65 20 69 6e 64 65 78 |ment who|se index|
|00001b90| 09 2a 2f 0a 09 09 09 2f | 2a 20 69 73 20 27 41 72 |.*/..../|* is 'Ar|
|00001ba0| 67 4e 75 6d 27 20 69 6e | 20 74 68 65 20 6d 65 6d |gNum' in| the mem|
|00001bb0| 6f 72 79 20 61 72 65 61 | 20 27 41 72 67 75 6d 65 |ory area| 'Argume|
|00001bc0| 6e 74 27 2e 09 2a 2f 0a | 0a 65 78 74 65 72 6e 20 |nt'..*/.|.extern |
|00001bd0| 76 6f 69 64 09 50 75 74 | 41 72 67 73 09 09 41 52 |void.Put|Args..AR|
|00001be0| 47 53 28 28 69 6e 74 20 | 41 72 67 63 2c 20 63 68 |GS((int |Argc, ch|
|00001bf0| 61 72 20 2a 20 2a 20 41 | 72 67 76 29 29 3b 0a 09 |ar * * A|rgv));..|
|00001c00| 09 09 2f 2a 20 44 75 6d | 6d 79 20 70 72 6f 63 65 |../* Dum|my proce|
|00001c10| 64 75 72 65 20 74 68 61 | 74 20 70 61 73 73 65 73 |dure tha|t passes|
|00001c20| 20 74 68 65 20 76 61 6c | 75 65 73 09 2a 2f 0a 09 | the val|ues.*/..|
|00001c30| 09 09 2f 2a 20 27 61 72 | 67 63 27 20 61 6e 64 20 |../* 'ar|gc' and |
|00001c40| 27 61 72 67 76 27 20 66 | 72 6f 6d 20 4d 6f 64 75 |'argv' f|rom Modu|
|00001c50| 6c 61 2d 32 20 74 6f 20 | 43 2e 09 2a 2f 0a 0a 65 |la-2 to |C..*/..e|
|00001c60| 78 74 65 72 6e 20 69 6e | 74 09 45 72 72 4e 75 6d |xtern in|t.ErrNum|
|00001c70| 09 09 28 29 3b 0a 09 09 | 09 2f 2a 20 52 65 74 75 |..();...|./* Retu|
|00001c80| 72 6e 73 20 74 68 65 20 | 63 75 72 72 65 6e 74 20 |rns the |current |
|00001c90| 73 79 73 74 65 6d 20 65 | 72 72 6f 72 20 63 6f 64 |system e|rror cod|
|00001ca0| 65 2e 09 2a 2f 0a 0a 65 | 78 74 65 72 6e 20 69 6e |e..*/..e|xtern in|
|00001cb0| 74 09 53 79 73 74 65 6d | 09 09 41 52 47 53 28 28 |t.System|..ARGS((|
|00001cc0| 63 68 61 72 20 2a 20 53 | 74 72 69 6e 67 29 29 3b |char * S|tring));|
|00001cd0| 0a 09 09 09 2f 2a 20 45 | 78 65 63 75 74 65 73 20 |..../* E|xecutes |
|00001ce0| 61 6e 20 6f 70 65 72 61 | 74 69 6e 67 20 73 79 73 |an opera|ting sys|
|00001cf0| 74 65 6d 20 63 6f 6d 6d | 61 6e 64 20 67 69 76 65 |tem comm|and give|
|00001d00| 6e 09 2a 2f 0a 09 09 09 | 2f 2a 20 61 73 20 74 68 |n.*/....|/* as th|
|00001d10| 65 20 73 74 72 69 6e 67 | 20 27 53 74 72 69 6e 67 |e string| 'String|
|00001d20| 27 2e 20 52 65 74 75 72 | 6e 73 20 61 6e 20 65 78 |'. Retur|ns an ex|
|00001d30| 69 74 20 6f 72 09 2a 2f | 0a 09 09 09 2f 2a 20 72 |it or.*/|..../* r|
|00001d40| 65 74 75 72 6e 20 63 6f | 64 65 2e 09 09 09 09 09 |eturn co|de......|
|00001d50| 2a 2f 0a 0a 65 78 74 65 | 72 6e 20 76 6f 69 64 09 |*/..exte|rn void.|
|00001d60| 45 78 69 74 09 09 41 52 | 47 53 28 28 69 6e 74 20 |Exit..AR|GS((int |
|00001d70| 53 74 61 74 75 73 29 29 | 3b 0a 09 09 09 2f 2a 20 |Status))|;..../* |
|00001d80| 54 65 72 6d 69 6e 61 74 | 65 73 20 70 72 6f 67 72 |Terminat|es progr|
|00001d90| 61 6d 20 65 78 65 63 75 | 74 69 6f 6e 20 61 6e 64 |am execu|tion and|
|00001da0| 20 70 61 73 73 65 73 20 | 74 68 65 09 2a 2f 0a 09 | passes |the.*/..|
|00001db0| 09 09 2f 2a 20 76 61 6c | 75 65 20 27 53 74 61 74 |../* val|ue 'Stat|
|00001dc0| 75 73 27 20 74 6f 20 74 | 68 65 20 6f 70 65 72 61 |us' to t|he opera|
|00001dd0| 74 69 6e 67 20 73 79 73 | 74 65 6d 2e 09 2a 2f 0a |ting sys|tem..*/.|
|00001de0| 0a 65 78 74 65 72 6e 20 | 76 6f 69 64 09 42 45 47 |.extern |void.BEG|
|00001df0| 49 4e 5f 53 79 73 74 65 | 6d 09 28 29 3b 0a 09 09 |IN_Syste|m.();...|
|00001e00| 09 2f 2a 20 44 75 6d 6d | 79 20 70 72 6f 63 65 64 |./* Dumm|y proced|
|00001e10| 75 72 65 20 77 69 74 68 | 20 65 6d 70 74 79 20 62 |ure with| empty b|
|00001e20| 6f 64 79 2e 09 09 2a 2f | 0a 0a 23 20 65 6e 64 69 |ody...*/|..# endi|
|00001e30| 66 0a 23 20 69 6e 63 6c | 75 64 65 20 3c 73 79 73 |f.# incl|ude <sys|
|00001e40| 2f 74 69 6d 65 73 2e 68 | 3e 0a 0a 6c 6f 6e 67 20 |/times.h|>..long |
|00001e50| 54 69 6d 65 20 28 29 0a | 7b 0a 20 20 20 73 74 72 |Time ().|{. str|
|00001e60| 75 63 74 20 74 6d 73 09 | 62 75 66 66 65 72 3b 0a |uct tms.|buffer;.|
|00001e70| 20 20 20 28 76 6f 69 64 | 29 20 74 69 6d 65 73 20 | (void|) times |
|00001e80| 28 26 20 62 75 66 66 65 | 72 29 3b 0a 20 20 20 72 |(& buffe|r);. r|
|00001e90| 65 74 75 72 6e 20 28 62 | 75 66 66 65 72 2e 74 6d |eturn (b|uffer.tm|
|00001ea0| 73 5f 75 74 69 6d 65 20 | 2b 20 62 75 66 66 65 72 |s_utime |+ buffer|
|00001eb0| 2e 74 6d 73 5f 73 74 69 | 6d 65 29 20 2a 20 31 30 |.tms_sti|me) * 10|
|00001ec0| 30 30 20 2f 20 68 7a 3b | 0a 7d 0a 0a 73 74 61 74 |00 / hz;|.}..stat|
|00001ed0| 69 63 20 69 6e 74 09 61 | 72 67 63 3b 0a 73 74 61 |ic int.a|rgc;.sta|
|00001ee0| 74 69 63 20 63 68 61 72 | 20 2a 20 2a 09 61 72 67 |tic char| * *.arg|
|00001ef0| 76 3b 0a 0a 69 6e 74 20 | 47 65 74 41 72 67 43 6f |v;..int |GetArgCo|
|00001f00| 75 6e 74 20 28 29 0a 7b | 0a 20 20 20 72 65 74 75 |unt ().{|. retu|
|00001f10| 72 6e 20 61 72 67 63 3b | 0a 7d 0a 0a 76 6f 69 64 |rn argc;|.}..void|
|00001f20| 20 47 65 74 41 72 67 75 | 6d 65 6e 74 20 28 41 72 | GetArgu|ment (Ar|
|00001f30| 67 4e 75 6d 2c 20 41 72 | 67 75 6d 65 6e 74 29 0a |gNum, Ar|gument).|
|00001f40| 20 20 20 69 6e 74 09 09 | 41 72 67 4e 75 6d 3b 0a | int..|ArgNum;.|
|00001f50| 20 20 20 63 68 61 72 20 | 2a 09 41 72 67 75 6d 65 | char |*.Argume|
|00001f60| 6e 74 3b 0a 7b 0a 20 20 | 20 72 65 67 69 73 74 65 |nt;.{. | registe|
|00001f70| 72 20 69 6e 74 09 69 20 | 3d 20 30 3b 0a 20 20 20 |r int.i |= 0;. |
|00001f80| 66 6f 72 20 28 3b 3b 20 | 69 20 2b 2b 29 0a 20 20 |for (;; |i ++). |
|00001f90| 20 20 20 20 69 66 20 28 | 28 41 72 67 75 6d 65 6e | if (|(Argumen|
|00001fa0| 74 20 5b 69 5d 20 3d 20 | 61 72 67 76 20 5b 41 72 |t [i] = |argv [Ar|
|00001fb0| 67 4e 75 6d 5d 5b 69 5d | 29 20 3d 3d 20 27 5c 30 |gNum][i]|) == '\0|
|00001fc0| 27 29 20 72 65 74 75 72 | 6e 3b 0a 7d 0a 0a 76 6f |') retur|n;.}..vo|
|00001fd0| 69 64 20 50 75 74 41 72 | 67 73 20 28 41 72 67 63 |id PutAr|gs (Argc|
|00001fe0| 2c 20 41 72 67 76 29 0a | 20 20 20 69 6e 74 09 09 |, Argv).| int..|
|00001ff0| 41 72 67 63 3b 0a 20 20 | 20 63 68 61 72 20 2a 20 |Argc;. | char * |
|00002000| 65 70 2f 47 65 6e 65 72 | 61 6c 2e 63 00 00 00 00 |ep/Gener|al.c....|
|00002010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002040| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002060| 00 00 00 00 20 20 20 36 | 34 34 20 00 20 20 20 32 |.... 6|44 . 2|
|00002070| 30 30 20 00 20 20 20 20 | 31 33 20 00 20 20 20 20 |00 . |13 . |
|00002080| 20 20 20 33 34 34 30 20 | 20 35 33 31 31 34 32 30 | 3440 | 5311420|
|00002090| 32 37 35 20 20 20 36 32 | 32 30 00 20 00 00 00 00 |275 62|20. ....|
|000020a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000020b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000020c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000020d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000020e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000020f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002100| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002110| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002120| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002130| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002140| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002150| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002160| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002170| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002180| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002190| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000021a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000021b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000021c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000021d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000021e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000021f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002200| 2f 2a 20 24 49 64 3a 20 | 47 65 6e 65 72 61 6c 2e |/* $Id: |General.|
|00002210| 63 2c 76 20 31 2e 35 20 | 31 39 39 32 2f 30 35 2f |c,v 1.5 |1992/05/|
|00002220| 30 35 20 31 33 3a 31 39 | 3a 30 35 20 67 72 6f 73 |05 13:19|:05 gros|
|00002230| 63 68 20 72 65 6c 20 24 | 20 2a 2f 0a 0a 2f 2a 20 |ch rel $| */../* |
|00002240| 24 4c 6f 67 3a 20 47 65 | 6e 65 72 61 6c 2e 63 2c |$Log: Ge|neral.c,|
|00002250| 76 20 24 0a 20 2a 20 52 | 65 76 69 73 69 6f 6e 20 |v $. * R|evision |
|00002260| 31 2e 35 20 20 31 39 39 | 32 2f 30 35 2f 30 35 20 |1.5 199|2/05/05 |
|00002270| 20 31 33 3a 31 39 3a 30 | 35 20 20 67 72 6f 73 63 | 13:19:0|5 grosc|
|00002280| 68 0a 20 2a 20 61 64 64 | 65 64 20 72 63 73 69 64 |h. * add|ed rcsid|
|00002290| 0a 20 2a 0a 20 2a 20 52 | 65 76 69 73 69 6f 6e 20 |. *. * R|evision |
|000022a0| 31 2e 34 20 20 31 39 39 | 32 2f 30 31 2f 33 31 20 |1.4 199|2/01/31 |
|000022b0| 20 31 36 3a 33 31 3a 34 | 34 20 20 67 72 6f 73 63 | 16:31:4|4 grosc|
|000022c0| 68 0a 20 2a 20 61 64 61 | 70 74 69 6f 6e 20 74 6f |h. * ada|ption to|
|000022d0| 20 41 4e 53 49 20 43 0a | 20 2a 0a 20 2a 20 52 65 | ANSI C.| *. * Re|
|000022e0| 76 69 73 69 6f 6e 20 31 | 2e 33 20 20 31 39 39 31 |vision 1|.3 1991|
|000022f0| 2f 31 31 2f 32 31 20 20 | 31 34 3a 32 38 3a 31 36 |/11/21 |14:28:16|
|00002300| 20 20 67 72 6f 73 63 68 | 0a 20 2a 20 6e 65 77 20 | grosch|. * new |
|00002310| 76 65 72 73 69 6f 6e 20 | 6f 66 20 52 43 53 20 6f |version |of RCS o|
|00002320| 6e 20 53 50 41 52 43 0a | 20 2a 0a 20 2a 20 52 65 |n SPARC.| *. * Re|
|00002330| 76 69 73 69 6f 6e 20 31 | 2e 32 20 20 39 30 2f 30 |vision 1|.2 90/0|
|00002340| 39 2f 30 34 20 20 31 37 | 3a 33 32 3a 30 38 20 20 |9/04 17|:32:08 |
|00002350| 67 72 6f 73 63 68 0a 20 | 2a 20 61 75 74 6f 6d 61 |grosch. |* automa|
|00002360| 74 69 63 20 64 65 74 65 | 72 6d 69 6e 61 74 69 6f |tic dete|rminatio|
|00002370| 6e 20 6f 66 20 61 6c 69 | 67 6e 6d 65 6e 74 0a 20 |n of ali|gnment. |
|00002380| 2a 20 0a 20 2a 20 52 65 | 76 69 73 69 6f 6e 20 31 |* . * Re|vision 1|
|00002390| 2e 31 20 20 39 30 2f 30 | 37 2f 30 34 20 20 31 34 |.1 90/0|7/04 14|
|000023a0| 3a 33 33 3a 35 33 20 20 | 67 72 6f 73 63 68 0a 20 |:33:53 |grosch. |
|000023b0| 2a 20 69 6e 74 72 6f 64 | 75 63 65 64 20 63 6f 6e |* introd|uced con|
|000023c0| 64 69 74 69 6f 6e 61 6c | 20 69 6e 63 6c 75 64 65 |ditional| include|
|000023d0| 0a 20 2a 20 0a 20 2a 20 | 52 65 76 69 73 69 6f 6e |. * . * |Revision|
|000023e0| 20 31 2e 30 20 20 38 38 | 2f 31 30 2f 30 34 20 20 | 1.0 88|/10/04 |
|000023f0| 31 31 3a 34 34 3a 33 37 | 20 20 67 72 6f 73 63 68 |11:44:37| grosch|
|00002400| 0a 20 2a 20 49 6e 69 74 | 69 61 6c 20 72 65 76 69 |. * Init|ial revi|
|00002410| 73 69 6f 6e 0a 20 2a 20 | 0a 20 2a 2f 0a 0a 2f 2a |sion. * |. */../*|
|00002420| 20 49 63 68 2c 20 44 6f | 6b 74 6f 72 20 4a 6f 73 | Ich, Do|ktor Jos|
|00002430| 65 66 20 47 72 6f 73 63 | 68 2c 20 49 6e 66 6f 72 |ef Grosc|h, Infor|
|00002440| 6d 61 74 69 6b 65 72 2c | 20 53 65 70 74 2e 20 31 |matiker,| Sept. 1|
|00002450| 39 38 37 20 2a 2f 0a 0a | 73 74 61 74 69 63 20 63 |987 */..|static c|
|00002460| 68 61 72 20 72 63 73 69 | 64 20 5b 5d 20 3d 20 22 |har rcsi|d [] = "|
|00002470| 24 49 64 3a 20 47 65 6e | 65 72 61 6c 2e 63 2c 76 |$Id: Gen|eral.c,v|
|00002480| 20 31 2e 35 20 31 39 39 | 32 2f 30 35 2f 30 35 20 | 1.5 199|2/05/05 |
|00002490| 31 33 3a 31 39 3a 30 35 | 20 67 72 6f 73 63 68 20 |13:19:05| grosch |
|000024a0| 72 65 6c 20 24 22 3b 0a | 0a 23 20 69 6e 63 6c 75 |rel $";.|.# inclu|
|000024b0| 64 65 20 22 72 61 74 63 | 2e 68 22 0a 23 20 69 6e |de "ratc|.h".# in|
|000024c0| 63 6c 75 64 65 20 22 47 | 65 6e 65 72 61 6c 2e 68 |clude "G|eneral.h|
|000024d0| 22 0a 0a 63 61 72 64 69 | 6e 61 6c 20 4c 6f 67 32 |"..cardi|nal Log2|
|000024e0| 09 09 2f 2a 20 52 65 74 | 75 72 6e 73 20 74 68 65 |../* Ret|urns the|
|000024f0| 20 6c 6f 67 61 72 69 74 | 68 6d 20 74 6f 20 74 68 | logarit|hm to th|
|00002500| 65 20 62 61 73 65 20 32 | 20 6f 66 20 27 78 27 2e |e base 2| of 'x'.|
|00002510| 09 2a 2f 0a 23 20 69 66 | 64 65 66 20 5f 5f 53 54 |.*/.# if|def __ST|
|00002520| 44 43 5f 5f 0a 20 20 20 | 28 72 65 67 69 73 74 65 |DC__. |(registe|
|00002530| 72 20 75 6e 73 69 67 6e | 65 64 20 6c 6f 6e 67 20 |r unsign|ed long |
|00002540| 78 29 0a 23 20 65 6c 73 | 65 0a 20 20 20 28 78 29 |x).# els|e. (x)|
|00002550| 20 72 65 67 69 73 74 65 | 72 20 75 6e 73 69 67 6e | registe|r unsign|
|00002560| 65 64 20 6c 6f 6e 67 20 | 78 3b 0a 23 20 65 6e 64 |ed long |x;.# end|
|00002570| 69 66 0a 20 20 20 7b 0a | 20 20 20 20 20 20 72 65 |if. {.| re|
|00002580| 67 69 73 74 65 72 20 63 | 61 72 64 69 6e 61 6c 20 |gister c|ardinal |
|00002590| 79 20 3d 20 30 3b 0a 0a | 20 20 20 20 20 20 69 66 |y = 0;..| if|
|000025a0| 20 28 78 20 3e 3d 20 36 | 35 35 33 36 29 20 7b 20 | (x >= 6|5536) { |
|000025b0| 79 20 2b 3d 20 31 36 3b | 20 78 20 3e 3e 3d 20 31 |y += 16;| x >>= 1|
|000025c0| 36 3b 20 7d 0a 20 20 20 | 20 20 20 69 66 20 28 78 |6; }. | if (x|
|000025d0| 20 3e 3d 20 20 20 32 35 | 36 29 20 7b 20 79 20 2b | >= 25|6) { y +|
|000025e0| 3d 20 20 38 3b 20 78 20 | 3e 3e 3d 20 20 38 3b 20 |= 8; x |>>= 8; |
|000025f0| 7d 0a 20 20 20 20 20 20 | 69 66 20 28 78 20 3e 3d |}. |if (x >=|
|00002600| 20 20 20 20 31 36 29 20 | 7b 20 79 20 2b 3d 20 20 | 16) |{ y += |
|00002610| 34 3b 20 78 20 3e 3e 3d | 20 20 34 3b 20 7d 0a 20 |4; x >>=| 4; }. |
|00002620| 20 20 20 20 20 69 66 20 | 28 78 20 3e 3d 20 20 20 | if |(x >= |
|00002630| 20 20 34 29 20 7b 20 79 | 20 2b 3d 20 20 32 3b 20 | 4) { y| += 2; |
|00002640| 78 20 3e 3e 3d 20 20 32 | 3b 20 7d 0a 20 20 20 20 |x >>= 2|; }. |
|00002650| 20 20 69 66 20 28 78 20 | 3e 3d 20 20 20 20 20 32 | if (x |>= 2|
|00002660| 29 20 7b 20 79 20 2b 3d | 20 20 31 3b 20 78 20 3e |) { y +=| 1; x >|
|00002670| 3e 3d 20 20 31 3b 20 7d | 0a 20 20 20 20 20 20 72 |>= 1; }|. r|
|00002680| 65 74 75 72 6e 20 79 3b | 0a 20 20 20 7d 0a 0a 75 |eturn y;|. }..u|
|00002690| 6e 73 69 67 6e 65 64 20 | 6c 6f 6e 67 20 45 78 70 |nsigned |long Exp|
|000026a0| 32 09 2f 2a 20 52 65 74 | 75 72 6e 73 20 32 20 74 |2./* Ret|urns 2 t|
|000026b0| 6f 20 74 68 65 20 70 6f | 77 65 72 20 6f 66 20 27 |o the po|wer of '|
|000026c0| 78 27 2e 09 09 2a 2f 0a | 23 20 69 66 64 65 66 20 |x'...*/.|# ifdef |
|000026d0| 5f 5f 53 54 44 43 5f 5f | 0a 20 20 20 28 72 65 67 |__STDC__|. (reg|
|000026e0| 69 73 74 65 72 20 63 61 | 72 64 69 6e 61 6c 20 78 |ister ca|rdinal x|
|000026f0| 29 0a 23 20 65 6c 73 65 | 0a 20 20 20 28 78 29 20 |).# else|. (x) |
|00002700| 72 65 67 69 73 74 65 72 | 20 63 61 72 64 69 6e 61 |register| cardina|
|00002710| 6c 20 78 3b 0a 23 20 65 | 6e 64 69 66 0a 20 20 20 |l x;.# e|ndif. |
|00002720| 7b 0a 20 20 20 20 20 20 | 72 65 67 69 73 74 65 72 |{. |register|
|00002730| 20 6c 6f 6e 67 20 79 20 | 3d 20 31 3b 0a 0a 20 20 | long y |= 1;.. |
|00002740| 20 20 20 20 69 66 20 28 | 78 20 3e 3d 20 31 36 29 | if (|x >= 16)|
|00002750| 20 7b 20 78 20 2d 3d 20 | 31 36 3b 20 79 20 3c 3c | { x -= |16; y <<|
|00002760| 3d 20 31 36 3b 20 7d 0a | 20 20 20 20 20 20 69 66 |= 16; }.| if|
|00002770| 20 28 78 20 3e 3d 20 20 | 38 29 20 7b 20 78 20 2d | (x >= |8) { x -|
|00002780| 3d 20 20 38 3b 20 79 20 | 3c 3c 3d 20 20 38 3b 20 |= 8; y |<<= 8; |
|00002790| 7d 0a 20 20 20 20 20 20 | 69 66 20 28 78 20 3e 3d |}. |if (x >=|
|000027a0| 20 20 34 29 20 7b 20 78 | 20 2d 3d 20 20 34 3b 20 | 4) { x| -= 4; |
|000027b0| 79 20 3c 3c 3d 20 20 34 | 3b 20 7d 0a 20 20 20 20 |y <<= 4|; }. |
|000027c0| 20 20 69 66 20 28 78 20 | 3e 3d 20 20 32 29 20 7b | if (x |>= 2) {|
|000027d0| 20 78 20 2d 3d 20 20 32 | 3b 20 79 20 3c 3c 3d 20 | x -= 2|; y <<= |
|000027e0| 20 32 3b 20 7d 0a 20 20 | 20 20 20 20 69 66 20 28 | 2; }. | if (|
|000027f0| 78 20 3e 3d 20 20 31 29 | 20 7b 20 78 20 2d 3d 20 |x >= 1)| { x -= |
|00002800| 20 31 3b 20 79 20 3c 3c | 3d 20 20 31 3b 20 7d 0a | 1; y <<|= 1; }.|
|00002810| 20 20 20 20 20 20 72 65 | 74 75 72 6e 20 79 3b 0a | re|turn y;.|
|00002820| 20 20 20 7d 0a 0a 73 74 | 61 74 69 63 20 73 74 72 | }..st|atic str|
|00002830| 75 63 74 20 7b 20 63 68 | 61 72 20 79 79 63 68 61 |uct { ch|ar yycha|
|00002840| 72 3b 20 64 6f 75 62 6c | 65 20 79 79 64 6f 75 62 |r; doubl|e yydoub|
|00002850| 6c 65 3b 20 7d 20 79 79 | 46 6f 72 41 6c 69 67 6e |le; } yy|ForAlign|
|00002860| 3b 0a 73 68 6f 72 74 09 | 79 79 4d 61 78 41 6c 69 |;.short.|yyMaxAli|
|00002870| 67 6e 09 3d 20 73 69 7a | 65 6f 66 20 28 79 79 46 |gn.= siz|eof (yyF|
|00002880| 6f 72 41 6c 69 67 6e 29 | 20 2d 20 73 69 7a 65 6f |orAlign)| - sizeo|
|00002890| 66 20 28 64 6f 75 62 6c | 65 29 3b 0a 6c 6f 6e 67 |f (doubl|e);.long|
|000028a0| 09 79 79 41 6c 69 67 6e | 4d 61 73 6b 73 20 5b 5d |.yyAlign|Masks []|
|000028b0| 09 3d 20 7b 20 30 2c 0a | 20 20 20 30 78 66 66 66 |.= { 0,.| 0xfff|
|000028c0| 66 66 66 66 66 2c 20 30 | 78 66 66 66 66 66 66 66 |fffff, 0|xfffffff|
|000028d0| 65 2c 20 30 78 66 66 66 | 66 66 66 66 66 2c 20 30 |e, 0xfff|fffff, 0|
|000028e0| 78 66 66 66 66 66 66 66 | 63 2c 0a 20 20 20 30 78 |xfffffff|c,. 0x|
|000028f0| 66 66 66 66 66 66 66 66 | 2c 20 30 78 66 66 66 66 |ffffffff|, 0xffff|
|00002900| 66 66 66 66 2c 20 30 78 | 66 66 66 66 66 66 66 66 |ffff, 0x|ffffffff|
|00002910| 2c 20 30 78 66 66 66 66 | 66 66 66 38 20 7d 3b 0a |, 0xffff|fff8 };.|
|00002920| 0a 0a 65 78 74 65 72 6e | 20 76 6f 69 64 09 47 65 |..extern| void.Ge|
|00002930| 74 41 72 67 75 6d 65 6e | 74 09 41 52 47 53 28 28 |tArgumen|t.ARGS((|
|00002940| 69 6e 74 20 41 72 67 4e | 75 6d 2c 20 63 68 61 72 |int ArgN|um, char|
|00002950| 20 2a 20 41 72 67 75 6d | 65 6e 74 29 29 3b 0a 09 | * Argum|ent));..|
|00002960| 09 09 2f 2a 20 53 74 6f | 72 65 73 20 61 20 73 74 |../* Sto|res a st|
|00002970| 72 69 6e 67 2d 76 61 6c | 75 65 64 20 61 72 67 75 |ring-val|ued argu|
|00002980| 6d 65 6e 74 20 77 68 6f | 73 65 20 69 6e 64 65 78 |ment who|se index|
|00002990| 09 2a 2f 0a 09 09 09 2f | 2a 20 69 73 20 27 41 72 |.*/..../|* is 'Ar|
|000029a0| 67 4e 75 6d 27 20 69 6e | 20 74 68 65 20 6d 65 6d |gNum' in| the mem|
|000029b0| 6f 72 79 20 61 72 65 61 | 20 27 41 72 67 75 6d 65 |ory area| 'Argume|
|000029c0| 6e 74 27 2e 09 2a 2f 0a | 0a 65 78 74 65 72 6e 20 |nt'..*/.|.extern |
|000029d0| 76 6f 69 64 09 50 75 74 | 41 72 67 73 09 09 41 52 |void.Put|Args..AR|
|000029e0| 47 53 28 28 69 6e 74 20 | 41 72 67 63 2c 20 63 68 |GS((int |Argc, ch|
|000029f0| 61 72 20 2a 20 2a 20 41 | 72 67 76 29 29 3b 0a 09 |ar * * A|rgv));..|
|00002a00| 65 70 2f 47 65 6e 65 72 | 61 6c 2e 68 00 00 00 00 |ep/Gener|al.h....|
|00002a10| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002a20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002a30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002a40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002a50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002a60| 00 00 00 00 20 20 20 36 | 34 34 20 00 20 20 20 32 |.... 6|44 . 2|
|00002a70| 30 30 20 00 20 20 20 20 | 31 33 20 00 20 20 20 20 |00 . |13 . |
|00002a80| 20 20 20 32 33 30 36 20 | 20 35 33 31 31 34 32 30 | 2306 | 5311420|
|00002a90| 32 37 36 20 20 20 36 32 | 32 36 00 20 00 00 00 00 |276 62|26. ....|
|00002aa0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002ab0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002ac0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002ad0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002ae0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002af0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002b00| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002b10| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002b20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002b30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002b40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002b50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002b60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002b70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002b80| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002b90| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002ba0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002bb0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002bc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002bd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002be0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002bf0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002c00| 23 20 69 66 6e 64 65 66 | 20 79 79 47 65 6e 65 72 |# ifndef| yyGener|
|00002c10| 61 6c 0a 23 20 64 65 66 | 69 6e 65 20 79 79 47 65 |al.# def|ine yyGe|
|00002c20| 6e 65 72 61 6c 0a 0a 2f | 2a 20 24 49 64 3a 20 47 |neral../|* $Id: G|
|00002c30| 65 6e 65 72 61 6c 2e 68 | 2c 76 20 31 2e 35 20 31 |eneral.h|,v 1.5 1|
|00002c40| 39 39 32 2f 30 38 2f 30 | 37 20 31 34 3a 33 36 3a |992/08/0|7 14:36:|
|00002c50| 35 31 20 67 72 6f 73 63 | 68 20 72 65 6c 20 24 20 |51 grosc|h rel $ |
|00002c60| 2a 2f 0a 0a 2f 2a 20 24 | 4c 6f 67 3a 20 47 65 6e |*/../* $|Log: Gen|
|00002c70| 65 72 61 6c 2e 68 2c 76 | 20 24 0a 20 2a 20 52 65 |eral.h,v| $. * Re|
|00002c80| 76 69 73 69 6f 6e 20 31 | 2e 35 20 20 31 39 39 32 |vision 1|.5 1992|
|00002c90| 2f 30 38 2f 30 37 20 20 | 31 34 3a 33 36 3a 35 31 |/08/07 |14:36:51|
|00002ca0| 20 20 67 72 6f 73 63 68 | 0a 20 2a 20 61 64 64 65 | grosch|. * adde|
|00002cb0| 64 20 63 6f 6d 6d 65 6e | 74 73 0a 20 2a 0a 20 2a |d commen|ts. *. *|
|00002cc0| 20 52 65 76 69 73 69 6f | 6e 20 31 2e 34 20 20 31 | Revisio|n 1.4 1|
|00002cd0| 39 39 31 2f 31 31 2f 32 | 31 20 20 31 34 3a 32 38 |991/11/2|1 14:28|
|00002ce0| 3a 31 36 20 20 67 72 6f | 73 63 68 0a 20 2a 20 6e |:16 gro|sch. * n|
|00002cf0| 65 77 20 76 65 72 73 69 | 6f 6e 20 6f 66 20 52 43 |ew versi|on of RC|
|00002d00| 53 20 6f 6e 20 53 50 41 | 52 43 0a 20 2a 0a 20 2a |S on SPA|RC. *. *|
|00002d10| 20 52 65 76 69 73 69 6f | 6e 20 31 2e 33 20 20 39 | Revisio|n 1.3 9|
|00002d20| 31 2f 30 37 2f 31 37 20 | 20 31 37 3a 32 33 3a 30 |1/07/17 | 17:23:0|
|00002d30| 36 20 20 67 72 6f 73 63 | 68 0a 20 2a 20 69 6e 74 |6 grosc|h. * int|
|00002d40| 72 6f 64 75 63 65 64 20 | 41 52 47 53 20 74 72 69 |roduced |ARGS tri|
|00002d50| 63 6b 20 66 6f 72 20 41 | 4e 53 49 20 63 6f 6d 70 |ck for A|NSI comp|
|00002d60| 61 74 69 62 69 6c 69 74 | 79 0a 20 2a 20 0a 20 2a |atibilit|y. * . *|
|00002d70| 20 52 65 76 69 73 69 6f | 6e 20 31 2e 32 20 20 39 | Revisio|n 1.2 9|
|00002d80| 30 2f 30 39 2f 30 34 20 | 20 31 37 3a 33 32 3a 30 |0/09/04 | 17:32:0|
|00002d90| 39 20 20 67 72 6f 73 63 | 68 0a 20 2a 20 61 75 74 |9 grosc|h. * aut|
|00002da0| 6f 6d 61 74 69 63 20 64 | 65 74 65 72 6d 69 6e 61 |omatic d|etermina|
|00002db0| 74 69 6f 6e 20 6f 66 20 | 61 6c 69 67 6e 6d 65 6e |tion of |alignmen|
|00002dc0| 74 0a 20 2a 20 0a 20 2a | 20 52 65 76 69 73 69 6f |t. * . *| Revisio|
|00002dd0| 6e 20 31 2e 31 20 20 39 | 30 2f 30 37 2f 30 34 20 |n 1.1 9|0/07/04 |
|00002de0| 20 31 34 3a 33 33 3a 35 | 34 20 20 67 72 6f 73 63 | 14:33:5|4 grosc|
|00002df0| 68 0a 20 2a 20 69 6e 74 | 72 6f 64 75 63 65 64 20 |h. * int|roduced |
|00002e00| 63 6f 6e 64 69 74 69 6f | 6e 61 6c 20 69 6e 63 6c |conditio|nal incl|
|00002e10| 75 64 65 0a 20 2a 20 0a | 20 2a 20 52 65 76 69 73 |ude. * .| * Revis|
|00002e20| 69 6f 6e 20 31 2e 30 20 | 20 38 38 2f 31 30 2f 30 |ion 1.0 | 88/10/0|
|00002e30| 34 20 20 31 31 3a 34 34 | 3a 33 37 20 20 67 72 6f |4 11:44|:37 gro|
|00002e40| 73 63 68 0a 20 2a 20 49 | 6e 69 74 69 61 6c 20 72 |sch. * I|nitial r|
|00002e50| 65 76 69 73 69 6f 6e 0a | 20 2a 20 0a 20 2a 2f 0a |evision.| * . */.|
|00002e60| 0a 2f 2a 20 49 63 68 2c | 20 44 6f 6b 74 6f 72 20 |./* Ich,| Doktor |
|00002e70| 4a 6f 73 65 66 20 47 72 | 6f 73 63 68 2c 20 49 6e |Josef Gr|osch, In|
|00002e80| 66 6f 72 6d 61 74 69 6b | 65 72 2c 20 53 65 70 74 |formatik|er, Sept|
|00002e90| 2e 20 31 39 38 37 20 2a | 2f 0a 0a 23 20 69 6e 63 |. 1987 *|/..# inc|
|00002ea0| 6c 75 64 65 20 22 72 61 | 74 63 2e 68 22 0a 0a 23 |lude "ra|tc.h"..#|
|00002eb0| 20 69 66 64 65 66 20 5f | 5f 53 54 44 43 5f 5f 0a | ifdef _|_STDC__.|
|00002ec0| 23 20 64 65 66 69 6e 65 | 20 41 52 47 53 28 70 61 |# define| ARGS(pa|
|00002ed0| 72 61 6d 65 74 65 72 73 | 29 09 70 61 72 61 6d 65 |rameters|).parame|
|00002ee0| 74 65 72 73 0a 23 20 65 | 6c 73 65 0a 23 20 64 65 |ters.# e|lse.# de|
|00002ef0| 66 69 6e 65 20 41 52 47 | 53 28 70 61 72 61 6d 65 |fine ARG|S(parame|
|00002f00| 74 65 72 73 29 09 28 29 | 0a 23 20 65 6e 64 69 66 |ters).()|.# endif|
|00002f10| 0a 0a 23 20 64 65 66 69 | 6e 65 20 4d 69 6e 28 61 |..# defi|ne Min(a|
|00002f20| 2c 62 29 20 28 28 61 20 | 3c 3d 20 62 29 20 3f 20 |,b) ((a |<= b) ? |
|00002f30| 61 20 3a 20 62 29 0a 09 | 09 09 2f 2a 20 52 65 74 |a : b)..|../* Ret|
|00002f40| 75 72 6e 73 20 74 68 65 | 20 6d 69 6e 69 6d 75 6d |urns the| minimum|
|00002f50| 20 6f 66 20 27 61 27 20 | 61 6e 64 20 27 62 27 2e | of 'a' |and 'b'.|
|00002f60| 09 09 2a 2f 0a 23 20 64 | 65 66 69 6e 65 20 4d 61 |..*/.# d|efine Ma|
|00002f70| 78 28 61 2c 62 29 20 28 | 28 61 20 3e 3d 20 62 29 |x(a,b) (|(a >= b)|
|00002f80| 20 3f 20 61 20 3a 20 62 | 29 0a 09 09 09 2f 2a 20 | ? a : b|)..../* |
|00002f90| 52 65 74 75 72 6e 73 20 | 74 68 65 20 6d 61 78 69 |Returns |the maxi|
|00002fa0| 6d 75 6d 20 6f 66 20 27 | 61 27 20 61 6e 64 20 27 |mum of '|a' and '|
|00002fb0| 62 27 2e 09 09 2a 2f 0a | 0a 65 78 74 65 72 6e 20 |b'...*/.|.extern |
|00002fc0| 63 61 72 64 69 6e 61 6c | 09 09 4c 6f 67 32 20 41 |cardinal|..Log2 A|
|00002fd0| 52 47 53 28 28 72 65 67 | 69 73 74 65 72 20 75 6e |RGS((reg|ister un|
|00002fe0| 73 69 67 6e 65 64 20 6c | 6f 6e 67 20 78 29 29 3b |signed l|ong x));|
|00002ff0| 0a 09 09 09 2f 2a 20 52 | 65 74 75 72 6e 73 20 74 |..../* R|eturns t|
|00003000| 68 65 20 6c 6f 67 61 72 | 69 74 68 6d 20 74 6f 20 |he logar|ithm to |
|00003010| 74 68 65 20 62 61 73 65 | 20 32 20 6f 66 20 27 78 |the base| 2 of 'x|
|00003020| 27 2e 09 2a 2f 0a 65 78 | 74 65 72 6e 20 75 6e 73 |'..*/.ex|tern uns|
|00003030| 69 67 6e 65 64 20 6c 6f | 6e 67 09 45 78 70 32 20 |igned lo|ng.Exp2 |
|00003040| 41 52 47 53 28 28 72 65 | 67 69 73 74 65 72 20 63 |ARGS((re|gister c|
|00003050| 61 72 64 69 6e 61 6c 20 | 78 29 29 3b 0a 09 09 09 |ardinal |x));....|
|00003060| 2f 2a 20 52 65 74 75 72 | 6e 73 20 32 20 74 6f 20 |/* Retur|ns 2 to |
|00003070| 74 68 65 20 70 6f 77 65 | 72 20 6f 66 20 27 78 27 |the powe|r of 'x'|
|00003080| 2e 09 09 2a 2f 0a 0a 65 | 78 74 65 72 6e 20 73 68 |...*/..e|xtern sh|
|00003090| 6f 72 74 09 79 79 4d 61 | 78 41 6c 69 67 6e 3b 0a |ort.yyMa|xAlign;.|
|000030a0| 65 78 74 65 72 6e 20 6c | 6f 6e 67 09 79 79 41 6c |extern l|ong.yyAl|
|000030b0| 69 67 6e 4d 61 73 6b 73 | 20 5b 5d 3b 0a 0a 23 20 |ignMasks| [];..# |
|000030c0| 65 6e 64 69 66 0a 2f 0a | 23 20 69 66 64 65 66 20 |endif./.|# ifdef |
|000030d0| 5f 5f 53 54 44 43 5f 5f | 0a 20 20 20 28 72 65 67 |__STDC__|. (reg|
|000030e0| 69 73 74 65 72 20 63 61 | 72 64 69 6e 61 6c 20 78 |ister ca|rdinal x|
|000030f0| 29 0a 23 20 65 6c 73 65 | 0a 20 20 20 28 78 29 20 |).# else|. (x) |
|00003100| 72 65 67 69 73 74 65 72 | 20 63 61 72 64 69 6e 61 |register| cardina|
|00003110| 6c 20 78 3b 0a 23 20 65 | 6e 64 69 66 0a 20 20 20 |l x;.# e|ndif. |
|00003120| 7b 0a 20 20 20 20 20 20 | 72 65 67 69 73 74 65 72 |{. |register|
|00003130| 20 6c 6f 6e 67 20 79 20 | 3d 20 31 3b 0a 0a 20 20 | long y |= 1;.. |
|00003140| 20 20 20 20 69 66 20 28 | 78 20 3e 3d 20 31 36 29 | if (|x >= 16)|
|00003150| 20 7b 20 78 20 2d 3d 20 | 31 36 3b 20 79 20 3c 3c | { x -= |16; y <<|
|00003160| 3d 20 31 36 3b 20 7d 0a | 20 20 20 20 20 20 69 66 |= 16; }.| if|
|00003170| 20 28 78 20 3e 3d 20 20 | 38 29 20 7b 20 78 20 2d | (x >= |8) { x -|
|00003180| 3d 20 20 38 3b 20 79 20 | 3c 3c 3d 20 20 38 3b 20 |= 8; y |<<= 8; |
|00003190| 7d 0a 20 20 20 20 20 20 | 69 66 20 28 78 20 3e 3d |}. |if (x >=|
|000031a0| 20 20 34 29 20 7b 20 78 | 20 2d 3d 20 20 34 3b 20 | 4) { x| -= 4; |
|000031b0| 79 20 3c 3c 3d 20 20 34 | 3b 20 7d 0a 20 20 20 20 |y <<= 4|; }. |
|000031c0| 20 20 69 66 20 28 78 20 | 3e 3d 20 20 32 29 20 7b | if (x |>= 2) {|
|000031d0| 20 78 20 2d 3d 20 20 32 | 3b 20 79 20 3c 3c 3d 20 | x -= 2|; y <<= |
|000031e0| 20 32 3b 20 7d 0a 20 20 | 20 20 20 20 69 66 20 28 | 2; }. | if (|
|000031f0| 78 20 3e 3d 20 20 31 29 | 20 7b 20 78 20 2d 3d 20 |x >= 1)| { x -= |
|00003200| 65 70 2f 4d 65 6d 6f 72 | 79 2e 63 00 00 00 00 00 |ep/Memor|y.c.....|
|00003210| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003220| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003230| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003240| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003250| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003260| 00 00 00 00 20 20 20 36 | 34 34 20 00 20 20 20 32 |.... 6|44 . 2|
|00003270| 30 30 20 00 20 20 20 20 | 31 33 20 00 20 20 20 20 |00 . |13 . |
|00003280| 20 20 31 35 37 36 31 20 | 20 35 33 31 31 34 32 30 | 15761 | 5311420|
|00003290| 32 37 36 20 20 20 36 31 | 34 35 00 20 00 00 00 00 |276 61|45. ....|
|000032a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000032b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000032c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000032d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000032e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000032f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003300| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003310| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003320| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003330| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003340| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003350| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003360| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003370| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003380| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003390| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000033a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000033b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000033c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000033d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000033e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000033f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003400| 2f 2a 20 24 49 64 3a 20 | 4d 65 6d 6f 72 79 2e 63 |/* $Id: |Memory.c|
|00003410| 2c 76 20 31 2e 31 33 20 | 31 39 39 32 2f 30 36 2f |,v 1.13 |1992/06/|
|00003420| 32 34 20 31 32 3a 32 33 | 3a 31 35 20 67 72 6f 73 |24 12:23|:15 gros|
|00003430| 63 68 20 72 65 6c 20 24 | 20 2a 2f 0a 0a 2f 2a 20 |ch rel $| */../* |
|00003440| 24 4c 6f 67 3a 20 4d 65 | 6d 6f 72 79 2e 63 2c 76 |$Log: Me|mory.c,v|
|00003450| 20 24 0a 20 2a 20 52 65 | 76 69 73 69 6f 6e 20 31 | $. * Re|vision 1|
|00003460| 2e 31 33 20 20 31 39 39 | 32 2f 30 36 2f 32 34 20 |.13 199|2/06/24 |
|00003470| 20 31 32 3a 32 33 3a 31 | 35 20 20 67 72 6f 73 63 | 12:23:1|5 grosc|
|00003480| 68 0a 20 2a 20 63 68 61 | 6e 67 65 64 20 63 4e 6f |h. * cha|nged cNo|
|00003490| 4d 6f 72 65 53 70 61 63 | 65 20 66 72 6f 6d 20 2d |MoreSpac|e from -|
|000034a0| 31 20 74 6f 20 30 0a 20 | 2a 0a 20 2a 20 52 65 76 |1 to 0. |*. * Rev|
|000034b0| 69 73 69 6f 6e 20 31 2e | 31 32 20 20 31 39 39 32 |ision 1.|12 1992|
|000034c0| 2f 30 35 2f 30 35 20 20 | 31 33 3a 31 39 3a 30 35 |/05/05 |13:19:05|
|000034d0| 20 20 67 72 6f 73 63 68 | 0a 20 2a 20 61 64 64 65 | grosch|. * adde|
|000034e0| 64 20 72 63 73 69 64 0a | 20 2a 0a 20 2a 20 52 65 |d rcsid.| *. * Re|
|000034f0| 76 69 73 69 6f 6e 20 31 | 2e 31 31 20 20 31 39 39 |vision 1|.11 199|
|00003500| 32 2f 30 31 2f 33 31 20 | 20 31 36 3a 33 31 3a 34 |2/01/31 | 16:31:4|
|00003510| 34 20 20 67 72 6f 73 63 | 68 0a 20 2a 20 61 64 61 |4 grosc|h. * ada|
|00003520| 70 74 69 6f 6e 20 74 6f | 20 41 4e 53 49 20 43 0a |ption to| ANSI C.|
|00003530| 20 2a 0a 20 2a 20 52 65 | 76 69 73 69 6f 6e 20 31 | *. * Re|vision 1|
|00003540| 2e 31 30 20 20 31 39 39 | 32 2f 30 31 2f 33 30 20 |.10 199|2/01/30 |
|00003550| 20 31 33 3a 31 36 3a 30 | 36 20 20 67 72 6f 73 63 | 13:16:0|6 grosc|
|00003560| 68 0a 20 2a 20 72 65 64 | 65 73 69 67 6e 20 6f 66 |h. * red|esign of|
|00003570| 20 69 6e 74 65 72 66 61 | 63 65 20 74 6f 20 6f 70 | interfa|ce to op|
|00003580| 65 72 61 74 69 6e 67 20 | 73 79 73 74 65 6d 0a 20 |erating |system. |
|00003590| 2a 0a 20 2a 20 52 65 76 | 69 73 69 6f 6e 20 31 2e |*. * Rev|ision 1.|
|000035a0| 39 20 20 31 39 39 32 2f | 30 31 2f 31 34 20 20 31 |9 1992/|01/14 1|
|000035b0| 35 3a 32 34 3a 33 35 20 | 20 67 72 6f 73 63 68 0a |5:24:35 | grosch.|
|000035c0| 20 2a 20 69 6e 74 72 6f | 64 75 63 65 64 20 61 75 | * intro|duced au|
|000035d0| 74 6f 6d 61 74 69 63 20 | 69 6e 69 74 69 61 6c 69 |tomatic |initiali|
|000035e0| 7a 61 74 69 6f 6e 0a 20 | 2a 0a 20 2a 20 52 65 76 |zation. |*. * Rev|
|000035f0| 69 73 69 6f 6e 20 31 2e | 38 20 20 31 39 39 31 2f |ision 1.|8 1991/|
|00003600| 31 31 2f 32 31 20 20 31 | 34 3a 32 38 3a 31 36 20 |11/21 1|4:28:16 |
|00003610| 20 67 72 6f 73 63 68 0a | 20 2a 20 6e 65 77 20 76 | grosch.| * new v|
|00003620| 65 72 73 69 6f 6e 20 6f | 66 20 52 43 53 20 6f 6e |ersion o|f RCS on|
|00003630| 20 53 50 41 52 43 0a 20 | 2a 0a 20 2a 20 52 65 76 | SPARC. |*. * Rev|
|00003640| 69 73 69 6f 6e 20 31 2e | 37 20 20 39 31 2f 30 31 |ision 1.|7 91/01|
|00003650| 2f 32 31 20 20 31 32 3a | 31 33 3a 32 32 20 20 67 |/21 12:|13:22 g|
|00003660| 72 6f 73 63 68 0a 20 2a | 20 73 6f 6d 65 20 70 65 |rosch. *| some pe|
|00003670| 72 66 6f 72 6d 61 6e 63 | 65 20 69 6d 70 72 6f 76 |rformanc|e improv|
|00003680| 65 6d 65 6e 74 73 0a 20 | 2a 20 0a 20 2a 20 52 65 |ements. |* . * Re|
|00003690| 76 69 73 69 6f 6e 20 31 | 2e 36 20 20 39 30 2f 31 |vision 1|.6 90/1|
|000036a0| 32 2f 31 34 20 20 31 35 | 3a 35 35 3a 35 32 20 20 |2/14 15|:55:52 |
|000036b0| 67 72 6f 73 63 68 0a 20 | 2a 20 69 6e 74 72 6f 64 |grosch. |* introd|
|000036c0| 75 63 65 64 20 76 61 72 | 69 61 62 6c 65 20 4d 65 |uced var|iable Me|
|000036d0| 6d 6f 72 79 55 73 65 64 | 0a 20 2a 20 0a 20 2a 20 |moryUsed|. * . * |
|000036e0| 52 65 76 69 73 69 6f 6e | 20 31 2e 35 20 20 39 30 |Revision| 1.5 90|
|000036f0| 2f 30 39 2f 31 34 20 20 | 31 31 3a 32 30 3a 34 36 |/09/14 |11:20:46|
|00003700| 20 20 67 72 6f 73 63 68 | 0a 20 2a 20 72 65 6d 6f | grosch|. * remo|
|00003710| 76 65 64 20 73 75 70 65 | 72 66 6c 75 6f 75 73 20 |ved supe|rfluous |
|00003720| 64 65 63 6c 61 72 61 74 | 69 6f 6e 73 20 66 6f 72 |declarat|ions for|
|00003730| 20 61 75 74 6f 6d 61 74 | 69 63 20 61 6c 69 67 6e | automat|ic align|
|00003740| 6d 65 6e 74 0a 20 2a 20 | 0a 20 2a 20 52 65 76 69 |ment. * |. * Revi|
|00003750| 73 69 6f 6e 20 31 2e 34 | 20 20 39 30 2f 30 39 2f |sion 1.4| 90/09/|
|00003760| 30 34 20 20 31 37 3a 33 | 32 3a 31 30 20 20 67 72 |04 17:3|2:10 gr|
|00003770| 6f 73 63 68 0a 20 2a 20 | 61 75 74 6f 6d 61 74 69 |osch. * |automati|
|00003780| 63 20 64 65 74 65 72 6d | 69 6e 61 74 69 6f 6e 20 |c determ|ination |
|00003790| 6f 66 20 61 6c 69 67 6e | 6d 65 6e 74 0a 20 2a 20 |of align|ment. * |
|000037a0| 0a 20 2a 20 52 65 76 69 | 73 69 6f 6e 20 31 2e 33 |. * Revi|sion 1.3|
|000037b0| 20 20 39 30 2f 30 37 2f | 30 34 20 20 31 34 3a 33 | 90/07/|04 14:3|
|000037c0| 33 3a 35 38 20 20 67 72 | 6f 73 63 68 0a 20 2a 20 |3:58 gr|osch. * |
|000037d0| 69 6e 74 72 6f 64 75 63 | 65 64 20 63 6f 6e 64 69 |introduc|ed condi|
|000037e0| 74 69 6f 6e 61 6c 20 69 | 6e 63 6c 75 64 65 0a 20 |tional i|nclude. |
|000037f0| 2a 20 0a 20 2a 20 52 65 | 76 69 73 69 6f 6e 20 31 |* . * Re|vision 1|
|00003800| 2e 32 20 20 38 39 2f 31 | 32 2f 30 38 20 20 32 30 |.2 89/1|2/08 20|
|00003810| 3a 31 36 3a 34 33 20 20 | 67 72 6f 73 63 68 0a 20 |:16:43 |grosch. |
|00003820| 2a 20 61 64 64 65 64 20 | 61 6c 69 67 6e 6d 65 6e |* added |alignmen|
|00003830| 74 20 66 6f 72 20 4d 49 | 50 53 20 70 72 6f 63 65 |t for MI|PS proce|
|00003840| 73 73 6f 72 0a 20 2a 20 | 0a 20 2a 20 52 65 76 69 |ssor. * |. * Revi|
|00003850| 73 69 6f 6e 20 31 2e 31 | 20 20 38 39 2f 30 36 2f |sion 1.1| 89/06/|
|00003860| 30 36 20 20 31 30 3a 32 | 38 3a 35 34 20 20 67 72 |06 10:2|8:54 gr|
|00003870| 6f 73 63 68 0a 20 2a 20 | 66 69 78 65 64 20 6c 69 |osch. * |fixed li|
|00003880| 6e 74 20 70 72 6f 62 6c | 65 6d 20 61 74 20 63 61 |nt probl|em at ca|
|00003890| 6c 6c 20 6f 66 20 46 72 | 65 65 0a 20 2a 20 0a 20 |ll of Fr|ee. * . |
|000038a0| 2a 20 52 65 76 69 73 69 | 6f 6e 20 31 2e 30 20 20 |* Revisi|on 1.0 |
|000038b0| 38 38 2f 31 30 2f 30 34 | 20 20 31 31 3a 34 34 3a |88/10/04| 11:44:|
|000038c0| 34 31 20 20 67 72 6f 73 | 63 68 0a 20 2a 20 49 6e |41 gros|ch. * In|
|000038d0| 69 74 69 61 6c 20 72 65 | 76 69 73 69 6f 6e 0a 20 |itial re|vision. |
|000038e0| 2a 20 0a 20 2a 2f 0a 0a | 2f 2a 20 49 63 68 2c 20 |* . */..|/* Ich, |
|000038f0| 44 6f 6b 74 6f 72 20 4a | 6f 73 65 66 20 47 72 6f |Doktor J|osef Gro|
|00003900| 73 63 68 2c 20 49 6e 66 | 6f 72 6d 61 74 69 6b 65 |sch, Inf|ormatike|
|00003910| 72 2c 20 53 65 70 74 2e | 20 31 39 38 37 20 2a 2f |r, Sept.| 1987 */|
|00003920| 0a 0a 73 74 61 74 69 63 | 20 63 68 61 72 20 72 63 |..static| char rc|
|00003930| 73 69 64 20 5b 5d 20 3d | 20 22 24 49 64 3a 20 4d |sid [] =| "$Id: M|
|00003940| 65 6d 6f 72 79 2e 63 2c | 76 20 31 2e 31 33 20 31 |emory.c,|v 1.13 1|
|00003950| 39 39 32 2f 30 36 2f 32 | 34 20 31 32 3a 32 33 3a |992/06/2|4 12:23:|
|00003960| 31 35 20 67 72 6f 73 63 | 68 20 72 65 6c 20 24 22 |15 grosc|h rel $"|
|00003970| 3b 0a 0a 23 20 69 6e 63 | 6c 75 64 65 20 22 72 61 |;..# inc|lude "ra|
|00003980| 74 63 2e 68 22 0a 23 20 | 69 6e 63 6c 75 64 65 20 |tc.h".# |include |
|00003990| 22 4d 65 6d 6f 72 79 2e | 68 22 0a 23 20 69 6e 63 |"Memory.|h".# inc|
|000039a0| 6c 75 64 65 20 22 53 79 | 73 74 65 6d 2e 68 22 0a |lude "Sy|stem.h".|
|000039b0| 23 20 69 6e 63 6c 75 64 | 65 20 22 47 65 6e 65 72 |# includ|e "Gener|
|000039c0| 61 6c 2e 68 22 0a 23 20 | 69 6e 63 6c 75 64 65 20 |al.h".# |include |
|000039d0| 3c 73 74 64 69 6f 2e 68 | 3e 0a 0a 23 20 64 65 66 |<stdio.h|>..# def|
|000039e0| 69 6e 65 20 4d 69 6e 53 | 69 7a 65 53 6d 61 6c 6c |ine MinS|izeSmall|
|000039f0| 42 6c 6f 63 6b 09 34 0a | 23 20 64 65 66 69 6e 65 |Block.4.|# define|
|00003a00| 20 4d 61 78 53 69 7a 65 | 53 6d 61 6c 6c 42 6c 6f | MaxSize|SmallBlo|
|00003a10| 63 6b 09 36 32 09 2f 2a | 20 36 34 20 2d 20 32 09 |ck.62./*| 64 - 2.|
|00003a20| 2a 2f 0a 23 20 64 65 66 | 69 6e 65 20 4d 69 6e 53 |*/.# def|ine MinS|
|00003a30| 69 7a 65 4c 61 72 67 65 | 42 6c 6f 63 6b 4c 6f 67 |izeLarge|BlockLog|
|00003a40| 09 36 09 2f 2a 20 4c 6f | 67 32 20 36 34 09 2a 2f |.6./* Lo|g2 64.*/|
|00003a50| 0a 23 20 64 65 66 69 6e | 65 20 4d 61 78 53 69 7a |.# defin|e MaxSiz|
|00003a60| 65 4c 61 72 67 65 42 6c | 6f 63 6b 4c 6f 67 09 32 |eLargeBl|ockLog.2|
|00003a70| 34 09 2f 2a 20 4c 6f 67 | 32 20 32 2a 2a 32 34 09 |4./* Log|2 2**24.|
|00003a80| 2a 2f 0a 23 20 64 65 66 | 69 6e 65 20 50 6f 6f 6c |*/.# def|ine Pool|
|00003a90| 53 69 7a 65 09 09 31 30 | 32 34 30 4c 0a 23 20 64 |Size..10|240L.# d|
|00003aa0| 65 66 69 6e 65 20 4e 49 | 4c 09 09 09 28 74 42 6c |efine NI|L...(tBl|
|00003ab0| 6f 63 6b 50 74 72 29 20 | 4e 55 4c 4c 0a 0a 75 6e |ockPtr) |NULL..un|
|00003ac0| 73 69 67 6e 65 64 20 6c | 6f 6e 67 20 4d 65 6d 6f |signed l|ong Memo|
|00003ad0| 72 79 55 73 65 64 20 3d | 20 30 3b 0a 0a 73 74 72 |ryUsed =| 0;..str|
|00003ae0| 75 63 74 20 74 42 6c 6f | 63 6b 20 7b 0a 20 20 20 |uct tBlo|ck {. |
|00003af0| 73 74 72 75 63 74 20 74 | 42 6c 6f 63 6b 20 2a 09 |struct t|Block *.|
|00003b00| 53 75 63 63 65 73 73 6f | 72 3b 0a 20 20 20 75 6e |Successo|r;. un|
|00003b10| 73 69 67 6e 65 64 20 6c | 6f 6e 67 09 53 69 7a 65 |signed l|ong.Size|
|00003b20| 3b 0a 7d 3b 0a 74 79 70 | 65 64 65 66 20 73 74 72 |;.};.typ|edef str|
|00003b30| 75 63 74 20 74 42 6c 6f | 63 6b 20 2a 09 74 42 6c |uct tBlo|ck *.tBl|
|00003b40| 6f 63 6b 50 74 72 3b 0a | 74 79 70 65 64 65 66 20 |ockPtr;.|typedef |
|00003b50| 63 61 72 64 69 6e 61 6c | 09 74 53 6d 61 6c 6c 42 |cardinal|.tSmallB|
|00003b60| 6c 6f 63 6b 52 61 6e 67 | 65 3b 0a 74 79 70 65 64 |lockRang|e;.typed|
|00003b70| 65 66 20 63 61 72 64 69 | 6e 61 6c 09 74 4c 61 72 |ef cardi|nal.tLar|
|00003b80| 67 65 42 6c 6f 63 6b 52 | 61 6e 67 65 3b 0a 0a 73 |geBlockR|ange;..s|
|00003b90| 74 61 74 69 63 09 74 42 | 6c 6f 63 6b 50 74 72 09 |tatic.tB|lockPtr.|
|00003ba0| 53 6d 61 6c 6c 43 68 61 | 69 6e 20 5b 4d 61 78 53 |SmallCha|in [MaxS|
|00003bb0| 69 7a 65 53 6d 61 6c 6c | 42 6c 6f 63 6b 20 20 20 |izeSmall|Block |
|00003bc0| 20 2b 20 31 5d 20 3d 20 | 7b 20 30 2c 0a 20 20 20 | + 1] = |{ 0,. |
|00003bd0| 4e 49 4c 2c 20 4e 49 4c | 2c 20 4e 49 4c 2c 20 4e |NIL, NIL|, NIL, N|
|00003be0| 49 4c 2c 20 4e 49 4c 2c | 20 4e 49 4c 2c 20 4e 49 |IL, NIL,| NIL, NI|
|00003bf0| 4c 2c 20 4e 49 4c 2c 20 | 4e 49 4c 2c 20 4e 49 4c |L, NIL, |NIL, NIL|
|00003c00| 2c 0a 20 20 20 4e 49 4c | 2c 20 4e 49 4c 2c 20 4e |,. NIL|, NIL, N|
|00003c10| 49 4c 2c 20 4e 49 4c 2c | 20 4e 49 4c 2c 20 4e 49 |IL, NIL,| NIL, NI|
|00003c20| 4c 2c 20 4e 49 4c 2c 20 | 4e 49 4c 2c 20 4e 49 4c |L, NIL, |NIL, NIL|
|00003c30| 2c 20 4e 49 4c 2c 0a 20 | 20 20 4e 49 4c 2c 20 4e |, NIL,. | NIL, N|
|00003c40| 49 4c 2c 20 4e 49 4c 2c | 20 4e 49 4c 2c 20 4e 49 |IL, NIL,| NIL, NI|
|00003c50| 4c 2c 20 4e 49 4c 2c 20 | 4e 49 4c 2c 20 4e 49 4c |L, NIL, |NIL, NIL|
|00003c60| 2c 20 4e 49 4c 2c 20 4e | 49 4c 2c 0a 20 20 20 4e |, NIL, N|IL,. N|
|00003c70| 49 4c 2c 20 4e 49 4c 2c | 20 4e 49 4c 2c 20 4e 49 |IL, NIL,| NIL, NI|
|00003c80| 4c 2c 20 4e 49 4c 2c 20 | 4e 49 4c 2c 20 4e 49 4c |L, NIL, |NIL, NIL|
|00003c90| 2c 20 4e 49 4c 2c 20 4e | 49 4c 2c 20 4e 49 4c 2c |, NIL, N|IL, NIL,|
|00003ca0| 0a 20 20 20 4e 49 4c 2c | 20 4e 49 4c 2c 20 4e 49 |. NIL,| NIL, NI|
|00003cb0| 4c 2c 20 4e 49 4c 2c 20 | 4e 49 4c 2c 20 4e 49 4c |L, NIL, |NIL, NIL|
|00003cc0| 2c 20 4e 49 4c 2c 20 4e | 49 4c 2c 20 4e 49 4c 2c |, NIL, N|IL, NIL,|
|00003cd0| 20 4e 49 4c 2c 0a 20 20 | 20 4e 49 4c 2c 20 4e 49 | NIL,. | NIL, NI|
|00003ce0| 4c 2c 20 4e 49 4c 2c 20 | 4e 49 4c 2c 20 4e 49 4c |L, NIL, |NIL, NIL|
|00003cf0| 2c 20 4e 49 4c 2c 20 4e | 49 4c 2c 20 4e 49 4c 2c |, NIL, N|IL, NIL,|
|00003d00| 20 4e 49 4c 2c 20 4e 49 | 4c 2c 0a 20 20 20 4e 49 | NIL, NI|L,. NI|
|00003d10| 4c 2c 20 4e 49 4c 2c 0a | 7d 3b 0a 73 74 61 74 69 |L, NIL,.|};.stati|
|00003d20| 63 09 74 42 6c 6f 63 6b | 50 74 72 09 4c 61 72 67 |c.tBlock|Ptr.Larg|
|00003d30| 65 43 68 61 69 6e 20 5b | 4d 61 78 53 69 7a 65 4c |eChain [|MaxSizeL|
|00003d40| 61 72 67 65 42 6c 6f 63 | 6b 4c 6f 67 20 2b 20 31 |argeBloc|kLog + 1|
|00003d50| 5d 20 3d 20 7b 20 30 2c | 0a 20 20 20 4e 49 4c 2c |] = { 0,|. NIL,|
|00003d60| 20 4e 49 4c 2c 20 4e 49 | 4c 2c 20 4e 49 4c 2c 20 | NIL, NI|L, NIL, |
|00003d70| 4e 49 4c 2c 20 4e 49 4c | 2c 20 4e 49 4c 2c 20 4e |NIL, NIL|, NIL, N|
|00003d80| 49 4c 2c 20 4e 49 4c 2c | 20 4e 49 4c 2c 0a 20 20 |IL, NIL,| NIL,. |
|00003d90| 20 4e 49 4c 2c 20 4e 49 | 4c 2c 20 4e 49 4c 2c 20 | NIL, NI|L, NIL, |
|00003da0| 4e 49 4c 2c 20 4e 49 4c | 2c 20 4e 49 4c 2c 20 4e |NIL, NIL|, NIL, N|
|00003db0| 49 4c 2c 20 4e 49 4c 2c | 20 4e 49 4c 2c 20 4e 49 |IL, NIL,| NIL, NI|
|00003dc0| 4c 2c 0a 20 20 20 4e 49 | 4c 2c 20 4e 49 4c 2c 20 |L,. NI|L, NIL, |
|00003dd0| 4e 49 4c 2c 20 4e 49 4c | 2c 0a 7d 3b 0a 73 74 61 |NIL, NIL|,.};.sta|
|00003de0| 74 69 63 09 63 68 61 72 | 20 2a 09 09 50 6f 6f 6c |tic.char| *..Pool|
|00003df0| 46 72 65 65 50 74 72 20 | 3d 20 30 3b 0a 73 74 61 |FreePtr |= 0;.sta|
|00003e00| 74 69 63 09 63 68 61 72 | 20 2a 09 09 50 6f 6f 6c |tic.char| *..Pool|
|00003e10| 45 6e 64 50 74 72 20 20 | 3d 20 30 3b 0a 0a 63 68 |EndPtr |= 0;..ch|
|00003e20| 61 72 20 2a 20 41 6c 6c | 6f 63 20 28 42 79 74 65 |ar * All|oc (Byte|
|00003e30| 43 6f 75 6e 74 29 0a 20 | 20 20 72 65 67 69 73 74 |Count). | regist|
|00003e40| 65 72 20 75 6e 73 69 67 | 6e 65 64 20 6c 6f 6e 67 |er unsig|ned long|
|00003e50| 20 42 79 74 65 43 6f 75 | 6e 74 3b 0a 0a 2f 2a 20 | ByteCou|nt;../* |
|00003e60| 52 65 74 75 72 6e 73 20 | 61 20 70 6f 69 6e 74 65 |Returns |a pointe|
|00003e70| 72 20 74 6f 20 64 79 6e | 61 6d 69 63 61 6c 6c 79 |r to dyn|amically|
|00003e80| 20 61 6c 6c 6f 63 61 74 | 65 64 09 2a 2f 0a 2f 2a | allocat|ed.*/./*|
|00003e90| 20 73 70 61 63 65 20 6f | 66 20 73 69 7a 65 20 27 | space o|f size '|
|00003ea0| 42 79 74 65 43 6f 75 6e | 74 27 20 62 79 74 65 73 |ByteCoun|t' bytes|
|00003eb0| 2e 09 09 2a 2f 0a 0a 7b | 0a 20 20 20 42 79 74 65 |...*/..{|. Byte|
|00003ec0| 43 6f 75 6e 74 20 3d 20 | 28 42 79 74 65 43 6f 75 |Count = |(ByteCou|
|00003ed0| 6e 74 20 2b 20 79 79 4d | 61 78 41 6c 69 67 6e 20 |nt + yyM|axAlign |
|00003ee0| 2d 20 31 29 20 26 20 79 | 79 41 6c 69 67 6e 4d 61 |- 1) & y|yAlignMa|
|00003ef0| 73 6b 73 20 5b 79 79 4d | 61 78 41 6c 69 67 6e 5d |sks [yyM|axAlign]|
|00003f00| 3b 0a 0a 20 20 20 69 66 | 20 28 42 79 74 65 43 6f |;.. if| (ByteCo|
|00003f10| 75 6e 74 20 3c 3d 20 4d | 61 78 53 69 7a 65 53 6d |unt <= M|axSizeSm|
|00003f20| 61 6c 6c 42 6c 6f 63 6b | 29 20 7b 09 2f 2a 20 68 |allBlock|) {./* h|
|00003f30| 61 6e 64 6c 65 20 73 6d | 61 6c 6c 20 62 6c 6f 63 |andle sm|all bloc|
|00003f40| 6b 20 2a 2f 0a 20 20 20 | 20 20 20 69 66 20 28 42 |k */. | if (B|
|00003f50| 79 74 65 43 6f 75 6e 74 | 20 3c 20 4d 69 6e 53 69 |yteCount| < MinSi|
|00003f60| 7a 65 53 6d 61 6c 6c 42 | 6c 6f 63 6b 29 20 42 79 |zeSmallB|lock) By|
|00003f70| 74 65 43 6f 75 6e 74 20 | 3d 20 4d 69 6e 53 69 7a |teCount |= MinSiz|
|00003f80| 65 53 6d 61 6c 6c 42 6c | 6f 63 6b 3b 0a 20 20 20 |eSmallBl|ock;. |
|00003f90| 20 20 20 69 66 20 28 53 | 6d 61 6c 6c 43 68 61 69 | if (S|mallChai|
|00003fa0| 6e 20 5b 42 79 74 65 43 | 6f 75 6e 74 5d 20 21 3d |n [ByteC|ount] !=|
|00003fb0| 20 4e 49 4c 29 20 7b 09 | 2f 2a 20 6f 62 74 61 69 | NIL) {.|/* obtai|
|00003fc0| 6e 20 62 6c 6f 63 6b 20 | 66 72 6f 6d 20 66 72 65 |n block |from fre|
|00003fd0| 65 6c 69 73 74 20 2a 2f | 0a 09 20 72 65 67 69 73 |elist */|.. regis|
|00003fe0| 74 65 72 20 74 42 6c 6f | 63 6b 50 74 72 20 43 75 |ter tBlo|ckPtr Cu|
|00003ff0| 72 72 65 6e 74 42 6c 6f | 63 6b 20 3d 20 53 6d 61 |rrentBlo|ck = Sma|
|00004000| 6c 6c 43 68 61 69 6e 20 | 5b 42 79 74 65 43 6f 75 |llChain |[ByteCou|
|00004010| 6e 74 5d 3b 0a 09 20 53 | 6d 61 6c 6c 43 68 61 69 |nt];.. S|mallChai|
|00004020| 6e 20 5b 42 79 74 65 43 | 6f 75 6e 74 5d 20 3d 20 |n [ByteC|ount] = |
|00004030| 43 75 72 72 65 6e 74 42 | 6c 6f 63 6b 2d 3e 53 75 |CurrentB|lock->Su|
|00004040| 63 63 65 73 73 6f 72 3b | 0a 09 20 72 65 74 75 72 |ccessor;|.. retur|
|00004050| 6e 20 28 63 68 61 72 20 | 2a 29 20 43 75 72 72 65 |n (char |*) Curre|
|00004060| 6e 74 42 6c 6f 63 6b 3b | 0a 20 20 20 20 20 20 7d |ntBlock;|. }|
|00004070| 20 65 6c 73 65 20 7b 09 | 09 09 09 09 2f 2a 20 6f | else {.|..../* o|
|00004080| 62 74 61 69 6e 20 62 6c | 6f 63 6b 20 66 72 6f 6d |btain bl|ock from|
|00004090| 20 73 74 6f 72 61 67 65 | 20 70 6f 6f 6c 20 2a 2f | storage| pool */|
|000040a0| 0a 09 20 72 65 67 69 73 | 74 65 72 20 75 6e 73 69 |.. regis|ter unsi|
|000040b0| 67 6e 65 64 20 6c 6f 6e | 67 20 46 72 65 65 42 79 |gned lon|g FreeBy|
|000040c0| 74 65 73 3b 0a 09 20 72 | 65 67 69 73 74 65 72 20 |tes;.. r|egister |
|000040d0| 63 68 61 72 20 2a 09 4f | 6c 64 46 72 65 65 50 74 |char *.O|ldFreePt|
|000040e0| 72 3b 0a 09 09 09 09 09 | 09 2f 2a 20 72 65 6c 65 |r;......|./* rele|
|000040f0| 61 73 65 20 6f 6c 64 20 | 70 6f 6f 6c 20 2a 2f 0a |ase old |pool */.|
|00004100| 09 20 69 66 20 28 28 46 | 72 65 65 42 79 74 65 73 |. if ((F|reeBytes|
|00004110| 20 3d 20 50 6f 6f 6c 45 | 6e 64 50 74 72 20 2d 20 | = PoolE|ndPtr - |
|00004120| 50 6f 6f 6c 46 72 65 65 | 50 74 72 29 20 3c 20 42 |PoolFree|Ptr) < B|
|00004130| 79 74 65 43 6f 75 6e 74 | 29 20 7b 0a 09 20 20 20 |yteCount|) {.. |
|00004140| 20 69 66 20 28 46 72 65 | 65 42 79 74 65 73 20 3e | if (Fre|eBytes >|
|00004150| 3d 20 4d 69 6e 53 69 7a | 65 53 6d 61 6c 6c 42 6c |= MinSiz|eSmallBl|
|00004160| 6f 63 6b 29 20 46 72 65 | 65 20 28 46 72 65 65 42 |ock) Fre|e (FreeB|
|00004170| 79 74 65 73 2c 20 50 6f | 6f 6c 46 72 65 65 50 74 |ytes, Po|olFreePt|
|00004180| 72 29 3b 0a 09 20 20 20 | 20 50 6f 6f 6c 46 72 65 |r);.. | PoolFre|
|00004190| 65 50 74 72 20 3d 20 41 | 6c 6c 6f 63 20 28 50 6f |ePtr = A|lloc (Po|
|000041a0| 6f 6c 53 69 7a 65 29 3b | 09 2f 2a 20 61 6c 6c 6f |olSize);|./* allo|
|000041b0| 63 61 74 65 20 6e 65 77 | 20 70 6f 6f 6c 20 2a 2f |cate new| pool */|
|000041c0| 0a 09 20 20 20 20 50 6f | 6f 6c 45 6e 64 50 74 72 |.. Po|olEndPtr|
|000041d0| 20 20 3d 20 50 6f 6f 6c | 46 72 65 65 50 74 72 20 | = Pool|FreePtr |
|000041e0| 2b 20 50 6f 6f 6c 53 69 | 7a 65 3b 0a 09 20 7d 0a |+ PoolSi|ze;.. }.|
|000041f0| 09 20 4f 6c 64 46 72 65 | 65 50 74 72 20 3d 20 50 |. OldFre|ePtr = P|
|00004200| 6f 6f 6c 46 72 65 65 50 | 74 72 3b 0a 09 20 50 6f |oolFreeP|tr;.. Po|
|00004210| 6f 6c 46 72 65 65 50 74 | 72 20 2b 3d 20 42 79 74 |olFreePt|r += Byt|
|00004220| 65 43 6f 75 6e 74 3b 0a | 09 20 72 65 74 75 72 6e |eCount;.|. return|
|00004230| 20 4f 6c 64 46 72 65 65 | 50 74 72 3b 0a 20 20 20 | OldFree|Ptr;. |
|00004240| 20 20 20 7d 0a 20 20 20 | 7d 20 65 6c 73 65 20 7b | }. |} else {|
|00004250| 09 09 09 09 09 2f 2a 20 | 68 61 6e 64 6c 65 20 6c |...../* |handle l|
|00004260| 61 72 67 65 20 62 6c 6f | 63 6b 20 2a 2f 0a 0a 20 |arge blo|ck */.. |
|00004270| 20 20 20 20 20 2f 2a 20 | 31 2e 20 73 65 61 72 63 | /* |1. searc|
|00004280| 68 20 69 6e 20 4c 61 72 | 67 65 43 68 61 69 6e 20 |h in Lar|geChain |
|00004290| 5b 4c 6f 67 32 20 28 42 | 79 74 65 43 6f 75 6e 74 |[Log2 (B|yteCount|
|000042a0| 29 5d 20 75 73 69 6e 67 | 20 42 45 53 54 20 46 49 |)] using| BEST FI|
|000042b0| 54 20 2a 2f 0a 0a 20 20 | 20 20 20 20 72 65 67 69 |T */.. | regi|
|000042c0| 73 74 65 72 20 63 61 72 | 64 69 6e 61 6c 09 09 43 |ster car|dinal..C|
|000042d0| 68 61 69 6e 4e 75 6d 62 | 65 72 09 3d 20 4c 6f 67 |hainNumb|er.= Log|
|000042e0| 32 20 28 42 79 74 65 43 | 6f 75 6e 74 29 3b 0a 20 |2 (ByteC|ount);. |
|000042f0| 20 20 20 20 20 72 65 67 | 69 73 74 65 72 20 74 42 | reg|ister tB|
|00004300| 6c 6f 63 6b 50 74 72 09 | 43 75 72 72 65 6e 74 42 |lockPtr.|CurrentB|
|00004310| 6c 6f 63 6b 09 3d 20 4c | 61 72 67 65 43 68 61 69 |lock.= L|argeChai|
|00004320| 6e 20 5b 43 68 61 69 6e | 4e 75 6d 62 65 72 5d 3b |n [Chain|Number];|
|00004330| 0a 20 20 20 20 20 20 72 | 65 67 69 73 74 65 72 20 |. r|egister |
|00004340| 74 42 6c 6f 63 6b 50 74 | 72 09 50 72 65 76 69 6f |tBlockPt|r.Previo|
|00004350| 75 73 42 6c 6f 63 6b 09 | 3d 20 28 74 42 6c 6f 63 |usBlock.|= (tBloc|
|00004360| 6b 50 74 72 29 20 26 20 | 28 4c 61 72 67 65 43 68 |kPtr) & |(LargeCh|
|00004370| 61 69 6e 20 5b 43 68 61 | 69 6e 4e 75 6d 62 65 72 |ain [Cha|inNumber|
|00004380| 5d 29 3b 0a 20 20 20 20 | 20 20 72 65 67 69 73 74 |]);. | regist|
|00004390| 65 72 20 74 42 6c 6f 63 | 6b 50 74 72 09 42 65 73 |er tBloc|kPtr.Bes|
|000043a0| 74 42 6c 6f 63 6b 09 3d | 20 4e 49 4c 3b 0a 20 20 |tBlock.=| NIL;. |
|000043b0| 20 20 20 20 72 65 67 69 | 73 74 65 72 20 75 6e 73 | regi|ster uns|
|000043c0| 69 67 6e 65 64 20 6c 6f | 6e 67 09 42 65 73 74 42 |igned lo|ng.BestB|
|000043d0| 6c 6f 63 6b 53 69 7a 65 | 09 3d 20 31 30 30 30 30 |lockSize|.= 10000|
|000043e0| 30 30 30 30 30 3b 0a 20 | 20 20 20 20 20 72 65 67 |00000;. | reg|
|000043f0| 69 73 74 65 72 20 74 42 | 6c 6f 63 6b 50 74 72 09 |ister tB|lockPtr.|
|00004400| 50 72 65 64 65 63 65 73 | 73 6f 72 42 6c 6f 63 6b |Predeces|sorBlock|
|00004410| 3b 0a 20 20 20 20 20 20 | 72 65 67 69 73 74 65 72 |;. |register|
|00004420| 20 74 4c 61 72 67 65 42 | 6c 6f 63 6b 52 61 6e 67 | tLargeB|lockRang|
|00004430| 65 09 6a 09 09 3b 0a 20 | 20 20 20 20 20 72 65 67 |e.j..;. | reg|
|00004440| 69 73 74 65 72 20 75 6e | 73 69 67 6e 65 64 20 6c |ister un|signed l|
|00004450| 6f 6e 67 09 43 75 72 72 | 65 6e 74 42 6c 6f 63 6b |ong.Curr|entBlock|
|00004460| 53 69 7a 65 3b 0a 0a 20 | 20 20 20 20 20 77 68 69 |Size;.. | whi|
|00004470| 6c 65 20 28 43 75 72 72 | 65 6e 74 42 6c 6f 63 6b |le (Curr|entBlock|
|00004480| 29 20 7b 0a 09 20 43 75 | 72 72 65 6e 74 42 6c 6f |) {.. Cu|rrentBlo|
|00004490| 63 6b 53 69 7a 65 20 3d | 20 43 75 72 72 65 6e 74 |ckSize =| Current|
|000044a0| 42 6c 6f 63 6b 2d 3e 53 | 69 7a 65 3b 0a 09 20 69 |Block->S|ize;.. i|
|000044b0| 66 20 28 43 75 72 72 65 | 6e 74 42 6c 6f 63 6b 53 |f (Curre|ntBlockS|
|000044c0| 69 7a 65 20 3e 3d 20 42 | 79 74 65 43 6f 75 6e 74 |ize >= B|yteCount|
|000044d0| 29 20 7b 0a 09 20 20 20 | 20 69 66 20 28 43 75 72 |) {.. | if (Cur|
|000044e0| 72 65 6e 74 42 6c 6f 63 | 6b 53 69 7a 65 20 3d 3d |rentBloc|kSize ==|
|000044f0| 20 42 79 74 65 43 6f 75 | 6e 74 29 20 7b 20 2f 2a | ByteCou|nt) { /*|
|00004500| 20 65 78 61 63 74 20 6d | 61 74 63 68 20 2a 2f 0a | exact m|atch */.|
|00004510| 09 20 20 20 20 20 20 20 | 50 72 65 76 69 6f 75 73 |. |Previous|
|00004520| 42 6c 6f 63 6b 2d 3e 53 | 75 63 63 65 73 73 6f 72 |Block->S|uccessor|
|00004530| 20 3d 20 43 75 72 72 65 | 6e 74 42 6c 6f 63 6b 2d | = Curre|ntBlock-|
|00004540| 3e 53 75 63 63 65 73 73 | 6f 72 3b 0a 09 20 20 20 |>Success|or;.. |
|00004550| 20 20 20 20 72 65 74 75 | 72 6e 20 28 63 68 61 72 | retu|rn (char|
|00004560| 20 2a 29 20 43 75 72 72 | 65 6e 74 42 6c 6f 63 6b | *) Curr|entBlock|
|00004570| 3b 0a 09 20 20 20 20 7d | 0a 09 20 20 20 20 69 66 |;.. }|.. if|
|00004580| 20 28 43 75 72 72 65 6e | 74 42 6c 6f 63 6b 53 69 | (Curren|tBlockSi|
|00004590| 7a 65 20 3c 20 42 65 73 | 74 42 6c 6f 63 6b 53 69 |ze < Bes|tBlockSi|
|000045a0| 7a 65 29 20 7b 20 2f 2a | 20 69 6d 70 72 6f 76 65 |ze) { /*| improve|
|000045b0| 20 61 70 70 72 6f 78 69 | 6d 61 74 69 6f 6e 20 2a | approxi|mation *|
|000045c0| 2f 0a 09 20 20 20 20 20 | 20 20 42 65 73 74 42 6c |/.. | BestBl|
|000045d0| 6f 63 6b 09 3d 20 43 75 | 72 72 65 6e 74 42 6c 6f |ock.= Cu|rrentBlo|
|000045e0| 63 6b 3b 0a 09 20 20 20 | 20 20 20 20 42 65 73 74 |ck;.. | Best|
|000045f0| 42 6c 6f 63 6b 53 69 7a | 65 09 3d 20 43 75 72 72 |BlockSiz|e.= Curr|
|00004600| 65 6e 74 42 6c 6f 63 6b | 53 69 7a 65 3b 0a 09 20 |entBlock|Size;.. |
|00004610| 20 20 20 20 20 20 50 72 | 65 64 65 63 65 73 73 6f | Pr|edecesso|
|00004620| 72 42 6c 6f 63 6b 09 3d | 20 50 72 65 76 69 6f 75 |rBlock.=| Previou|
|00004630| 73 42 6c 6f 63 6b 3b 0a | 09 20 20 20 20 7d 0a 09 |sBlock;.|. }..|
|00004640| 20 7d 0a 09 20 50 72 65 | 76 69 6f 75 73 42 6c 6f | }.. Pre|viousBlo|
|00004650| 63 6b 09 3d 20 43 75 72 | 72 65 6e 74 42 6c 6f 63 |ck.= Cur|rentBloc|
|00004660| 6b 3b 0a 09 20 43 75 72 | 72 65 6e 74 42 6c 6f 63 |k;.. Cur|rentBloc|
|00004670| 6b 09 3d 20 43 75 72 72 | 65 6e 74 42 6c 6f 63 6b |k.= Curr|entBlock|
|00004680| 2d 3e 53 75 63 63 65 73 | 73 6f 72 3b 0a 20 20 20 |->Succes|sor;. |
|00004690| 20 20 20 7d 0a 0a 20 20 | 20 20 20 20 69 66 20 28 | }.. | if (|
|000046a0| 42 65 73 74 42 6c 6f 63 | 6b 29 20 7b 0a 09 20 50 |BestBloc|k) {.. P|
|000046b0| 72 65 64 65 63 65 73 73 | 6f 72 42 6c 6f 63 6b 2d |redecess|orBlock-|
|000046c0| 3e 53 75 63 63 65 73 73 | 6f 72 20 3d 20 42 65 73 |>Success|or = Bes|
|000046d0| 74 42 6c 6f 63 6b 2d 3e | 53 75 63 63 65 73 73 6f |tBlock->|Successo|
|000046e0| 72 3b 0a 09 20 69 66 20 | 28 42 65 73 74 42 6c 6f |r;.. if |(BestBlo|
|000046f0| 63 6b 53 69 7a 65 20 2d | 20 42 79 74 65 43 6f 75 |ckSize -| ByteCou|
|00004700| 6e 74 20 3e 3d 20 4d 69 | 6e 53 69 7a 65 53 6d 61 |nt >= Mi|nSizeSma|
|00004710| 6c 6c 42 6c 6f 63 6b 29 | 20 7b 0a 09 20 20 20 20 |llBlock)| {.. |
|00004720| 46 72 65 65 20 28 42 65 | 73 74 42 6c 6f 63 6b 53 |Free (Be|stBlockS|
|00004730| 69 7a 65 20 2d 20 42 79 | 74 65 43 6f 75 6e 74 2c |ize - By|teCount,|
|00004740| 20 28 63 68 61 72 20 2a | 29 20 42 65 73 74 42 6c | (char *|) BestBl|
|00004750| 6f 63 6b 20 2b 20 42 79 | 74 65 43 6f 75 6e 74 29 |ock + By|teCount)|
|00004760| 3b 0a 09 20 7d 0a 09 20 | 72 65 74 75 72 6e 20 28 |;.. }.. |return (|
|00004770| 63 68 61 72 20 2a 29 20 | 42 65 73 74 42 6c 6f 63 |char *) |BestBloc|
|00004780| 6b 3b 0a 20 20 20 20 20 | 20 7d 0a 0a 20 20 20 20 |k;. | }.. |
|00004790| 20 20 2f 2a 20 32 2e 20 | 73 65 61 72 63 68 20 69 | /* 2. |search i|
|000047a0| 6e 20 4c 61 72 67 65 43 | 68 61 69 6e 20 5b 6a 5d |n LargeC|hain [j]|
|000047b0| 2c 20 6a 20 3e 20 4c 6f | 67 32 20 28 42 79 74 65 |, j > Lo|g2 (Byte|
|000047c0| 43 6f 75 6e 74 29 2c 20 | 75 73 69 6e 67 20 46 49 |Count), |using FI|
|000047d0| 52 53 54 20 46 49 54 20 | 2a 2f 0a 0a 20 20 20 20 |RST FIT |*/.. |
|000047e0| 20 20 66 6f 72 20 28 6a | 20 3d 20 43 68 61 69 6e | for (j| = Chain|
|000047f0| 4e 75 6d 62 65 72 2b 31 | 3b 20 6a 20 3c 3d 20 4d |Number+1|; j <= M|
|00004800| 61 78 53 69 7a 65 4c 61 | 72 67 65 42 6c 6f 63 6b |axSizeLa|rgeBlock|
|00004810| 4c 6f 67 3b 20 6a 20 2b | 2b 29 20 7b 0a 09 20 43 |Log; j +|+) {.. C|
|00004820| 75 72 72 65 6e 74 42 6c | 6f 63 6b 20 3d 20 4c 61 |urrentBl|ock = La|
|00004830| 72 67 65 43 68 61 69 6e | 20 5b 6a 5d 3b 0a 09 20 |rgeChain| [j];.. |
|00004840| 69 66 20 28 43 75 72 72 | 65 6e 74 42 6c 6f 63 6b |if (Curr|entBlock|
|00004850| 20 21 3d 20 4e 49 4c 29 | 20 7b 0a 09 20 20 20 20 | != NIL)| {.. |
|00004860| 4c 61 72 67 65 43 68 61 | 69 6e 20 5b 6a 5d 20 3d |LargeCha|in [j] =|
|00004870| 20 43 75 72 72 65 6e 74 | 42 6c 6f 63 6b 2d 3e 53 | Current|Block->S|
|00004880| 75 63 63 65 73 73 6f 72 | 3b 0a 09 20 20 20 20 69 |uccessor|;.. i|
|00004890| 66 20 28 43 75 72 72 65 | 6e 74 42 6c 6f 63 6b 2d |f (Curre|ntBlock-|
|000048a0| 3e 53 69 7a 65 20 2d 20 | 42 79 74 65 43 6f 75 6e |>Size - |ByteCoun|
|000048b0| 74 20 3e 3d 20 4d 69 6e | 53 69 7a 65 53 6d 61 6c |t >= Min|SizeSmal|
|000048c0| 6c 42 6c 6f 63 6b 29 20 | 7b 0a 09 20 20 20 20 20 |lBlock) |{.. |
|000048d0| 20 20 46 72 65 65 20 28 | 43 75 72 72 65 6e 74 42 | Free (|CurrentB|
|000048e0| 6c 6f 63 6b 2d 3e 53 69 | 7a 65 20 2d 20 42 79 74 |lock->Si|ze - Byt|
|000048f0| 65 43 6f 75 6e 74 2c 20 | 28 63 68 61 72 20 2a 29 |eCount, |(char *)|
|00004900| 20 43 75 72 72 65 6e 74 | 42 6c 6f 63 6b 20 2b 20 | Current|Block + |
|00004910| 42 79 74 65 43 6f 75 6e | 74 29 3b 0a 09 20 20 20 |ByteCoun|t);.. |
|00004920| 20 7d 0a 09 20 20 20 20 | 72 65 74 75 72 6e 20 28 | }.. |return (|
|00004930| 63 68 61 72 20 2a 29 20 | 43 75 72 72 65 6e 74 42 |char *) |CurrentB|
|00004940| 6c 6f 63 6b 3b 0a 09 20 | 7d 0a 20 20 20 20 20 20 |lock;.. |}. |
|00004950| 7d 0a 0a 20 20 20 20 20 | 20 69 66 20 28 42 79 74 |}.. | if (Byt|
|00004960| 65 43 6f 75 6e 74 20 3c | 20 50 6f 6f 6c 53 69 7a |eCount <| PoolSiz|
|00004970| 65 29 20 7b 09 09 2f 2a | 20 33 2e 20 6f 62 74 61 |e) {../*| 3. obta|
|00004980| 69 6e 20 62 6c 6f 63 6b | 20 66 72 6f 6d 20 73 74 |in block| from st|
|00004990| 6f 72 61 67 65 20 70 6f | 6f 6c 20 2a 2f 0a 09 20 |orage po|ol */.. |
|000049a0| 72 65 67 69 73 74 65 72 | 20 75 6e 73 69 67 6e 65 |register| unsigne|
|000049b0| 64 20 6c 6f 6e 67 20 46 | 72 65 65 42 79 74 65 73 |d long F|reeBytes|
|000049c0| 3b 0a 09 09 09 09 09 09 | 2f 2a 20 72 65 6c 65 61 |;.......|/* relea|
|000049d0| 73 65 20 6f 6c 64 20 70 | 6f 6f 6c 20 2a 2f 0a 09 |se old p|ool */..|
|000049e0| 20 69 66 20 28 28 46 72 | 65 65 42 79 74 65 73 20 | if ((Fr|eeBytes |
|000049f0| 3d 20 50 6f 6f 6c 45 6e | 64 50 74 72 20 2d 20 50 |= PoolEn|dPtr - P|
|00004a00| 6f 6f 6c 46 72 65 65 50 | 74 72 29 20 3c 20 42 79 |oolFreeP|tr) < By|
|00004a10| 74 65 43 6f 75 6e 74 29 | 20 7b 0a 09 20 20 20 20 |teCount)| {.. |
|00004a20| 69 66 20 28 46 72 65 65 | 42 79 74 65 73 20 3e 3d |if (Free|Bytes >=|
|00004a30| 20 4d 69 6e 53 69 7a 65 | 53 6d 61 6c 6c 42 6c 6f | MinSize|SmallBlo|
|00004a40| 63 6b 29 20 46 72 65 65 | 20 28 46 72 65 65 42 79 |ck) Free| (FreeBy|
|00004a50| 74 65 73 2c 20 50 6f 6f | 6c 46 72 65 65 50 74 72 |tes, Poo|lFreePtr|
|00004a60| 29 3b 0a 09 20 20 20 20 | 50 6f 6f 6c 46 72 65 65 |);.. |PoolFree|
|00004a70| 50 74 72 20 3d 20 41 6c | 6c 6f 63 20 28 50 6f 6f |Ptr = Al|loc (Poo|
|00004a80| 6c 53 69 7a 65 29 3b 09 | 2f 2a 20 61 6c 6c 6f 63 |lSize);.|/* alloc|
|00004a90| 61 74 65 20 6e 65 77 20 | 70 6f 6f 6c 20 2a 2f 0a |ate new |pool */.|
|00004aa0| 09 20 20 20 20 50 6f 6f | 6c 45 6e 64 50 74 72 20 |. Poo|lEndPtr |
|00004ab0| 20 3d 20 50 6f 6f 6c 46 | 72 65 65 50 74 72 20 2b | = PoolF|reePtr +|
|00004ac0| 20 50 6f 6f 6c 53 69 7a | 65 3b 0a 09 20 7d 0a 09 | PoolSiz|e;.. }..|
|00004ad0| 20 50 6f 6f 6c 46 72 65 | 65 50 74 72 20 2b 3d 20 | PoolFre|ePtr += |
|00004ae0| 42 79 74 65 43 6f 75 6e | 74 3b 0a 09 20 72 65 74 |ByteCoun|t;.. ret|
|00004af0| 75 72 6e 20 50 6f 6f 6c | 46 72 65 65 50 74 72 20 |urn Pool|FreePtr |
|00004b00| 2d 20 42 79 74 65 43 6f | 75 6e 74 3b 0a 20 20 20 |- ByteCo|unt;. |
|00004b10| 20 20 20 7d 20 65 6c 73 | 65 20 7b 09 09 09 09 09 | } els|e {.....|
|00004b20| 2f 2a 20 34 2e 20 61 6c | 6c 6f 63 61 74 65 20 69 |/* 4. al|locate i|
|00004b30| 6e 64 69 76 69 64 75 61 | 6c 20 62 6c 6f 63 6b 20 |ndividua|l block |
|00004b40| 2a 2f 0a 09 20 43 75 72 | 72 65 6e 74 42 6c 6f 63 |*/.. Cur|rentBloc|
|00004b50| 6b 20 3d 20 28 74 42 6c | 6f 63 6b 50 74 72 29 20 |k = (tBl|ockPtr) |
|00004b60| 53 79 73 41 6c 6c 6f 63 | 20 28 28 6c 6f 6e 67 29 |SysAlloc| ((long)|
|00004b70| 20 42 79 74 65 43 6f 75 | 6e 74 29 3b 0a 09 20 4d | ByteCou|nt);.. M|
|00004b80| 65 6d 6f 72 79 55 73 65 | 64 20 2b 3d 20 42 79 74 |emoryUse|d += Byt|
|00004b90| 65 43 6f 75 6e 74 3b 0a | 09 20 72 65 74 75 72 6e |eCount;.|. return|
|00004ba0| 20 28 63 68 61 72 20 2a | 29 20 43 75 72 72 65 6e | (char *|) Curren|
|00004bb0| 74 42 6c 6f 63 6b 3b 0a | 20 20 20 20 20 20 7d 0a |tBlock;.| }.|
|00004bc0| 20 20 20 7d 0a 7d 0a 0a | 76 6f 69 64 20 46 72 65 | }.}..|void Fre|
|00004bd0| 65 20 28 42 79 74 65 43 | 6f 75 6e 74 2c 20 61 29 |e (ByteC|ount, a)|
|00004be0| 0a 20 20 20 75 6e 73 69 | 67 6e 65 64 20 6c 6f 6e |. unsi|gned lon|
|00004bf0| 67 09 42 79 74 65 43 6f | 75 6e 74 3b 0a 20 20 20 |g.ByteCo|unt;. |
|00004c00| 63 68 61 72 20 2a 09 09 | 61 3b 0a 0a 2f 2a 20 54 |char *..|a;../* T|
|00004c10| 68 65 20 64 79 6e 61 6d | 69 63 61 6c 6c 79 20 61 |he dynam|ically a|
|00004c20| 6c 6c 6f 63 61 74 65 64 | 20 73 70 61 63 65 20 73 |llocated| space s|
|00004c30| 74 61 72 74 69 6e 67 20 | 61 74 09 2a 2f 0a 2f 2a |tarting |at.*/./*|
|00004c40| 20 61 64 64 72 65 73 73 | 20 27 61 27 20 6f 66 20 | address| 'a' of |
|00004c50| 73 69 7a 65 20 27 42 79 | 74 65 43 6f 75 6e 74 27 |size 'By|teCount'|
|00004c60| 20 62 79 74 65 73 20 69 | 73 09 2a 2f 0a 2f 2a 20 | bytes i|s.*/./* |
|00004c70| 72 65 6c 65 61 73 65 64 | 2e 09 09 09 09 09 2a 2f |released|......*/|
|00004c80| 0a 0a 7b 0a 20 20 20 72 | 65 67 69 73 74 65 72 20 |..{. r|egister |
|00004c90| 74 42 6c 6f 63 6b 50 74 | 72 09 09 42 6c 6f 63 6b |tBlockPt|r..Block|
|00004ca0| 50 74 72 3b 0a 20 20 20 | 72 65 67 69 73 74 65 72 |Ptr;. |register|
|00004cb0| 20 74 4c 61 72 67 65 42 | 6c 6f 63 6b 52 61 6e 67 | tLargeB|lockRang|
|00004cc0| 65 09 43 68 61 69 6e 4e | 75 6d 62 65 72 3b 0a 0a |e.ChainN|umber;..|
|00004cd0| 20 20 20 42 79 74 65 43 | 6f 75 6e 74 20 3d 20 28 | ByteC|ount = (|
|00004ce0| 42 79 74 65 43 6f 75 6e | 74 20 2b 20 79 79 4d 61 |ByteCoun|t + yyMa|
|00004cf0| 78 41 6c 69 67 6e 20 2d | 20 31 29 20 26 20 79 79 |xAlign -| 1) & yy|
|00004d00| 41 6c 69 67 6e 4d 61 73 | 6b 73 20 5b 79 79 4d 61 |AlignMas|ks [yyMa|
|00004d10| 78 41 6c 69 67 6e 5d 3b | 0a 0a 20 20 20 42 6c 6f |xAlign];|.. Blo|
|00004d20| 63 6b 50 74 72 20 3d 20 | 28 74 42 6c 6f 63 6b 50 |ckPtr = |(tBlockP|
|00004d30| 74 72 29 20 61 3b 0a 20 | 20 20 69 66 20 28 42 79 |tr) a;. | if (By|
|00004d40| 74 65 43 6f 75 6e 74 20 | 3c 3d 20 4d 61 78 53 69 |teCount |<= MaxSi|
|00004d50| 7a 65 53 6d 61 6c 6c 42 | 6c 6f 63 6b 29 20 7b 0a |zeSmallB|lock) {.|
|00004d60| 20 20 20 20 20 20 69 66 | 20 28 42 79 74 65 43 6f | if| (ByteCo|
|00004d70| 75 6e 74 20 3c 20 4d 69 | 6e 53 69 7a 65 53 6d 61 |unt < Mi|nSizeSma|
|00004d80| 6c 6c 42 6c 6f 63 6b 29 | 20 42 79 74 65 43 6f 75 |llBlock)| ByteCou|
|00004d90| 6e 74 20 3d 20 4d 69 6e | 53 69 7a 65 53 6d 61 6c |nt = Min|SizeSmal|
|00004da0| 6c 42 6c 6f 63 6b 3b 0a | 20 20 20 20 20 20 42 6c |lBlock;.| Bl|
|00004db0| 6f 63 6b 50 74 72 2d 3e | 53 75 63 63 65 73 73 6f |ockPtr->|Successo|
|00004dc0| 72 09 3d 20 53 6d 61 6c | 6c 43 68 61 69 6e 20 5b |r.= Smal|lChain [|
|00004dd0| 42 79 74 65 43 6f 75 6e | 74 5d 3b 0a 20 20 20 20 |ByteCoun|t];. |
|00004de0| 20 20 53 6d 61 6c 6c 43 | 68 61 69 6e 20 5b 42 79 | SmallC|hain [By|
|00004df0| 74 65 43 6f 75 6e 74 5d | 09 3d 20 42 6c 6f 63 6b |teCount]|.= Block|
|00004e00| 50 74 72 3b 0a 20 20 20 | 7d 20 65 6c 73 65 20 7b |Ptr;. |} else {|
|00004e10| 0a 20 20 20 20 20 20 43 | 68 61 69 6e 4e 75 6d 62 |. C|hainNumb|
|00004e20| 65 72 09 09 3d 20 4c 6f | 67 32 20 28 42 79 74 65 |er..= Lo|g2 (Byte|
|00004e30| 43 6f 75 6e 74 29 3b 0a | 20 20 20 20 20 20 42 6c |Count);.| Bl|
|00004e40| 6f 63 6b 50 74 72 2d 3e | 53 75 63 63 65 73 73 6f |ockPtr->|Successo|
|00004e50| 72 09 3d 20 4c 61 72 67 | 65 43 68 61 69 6e 20 5b |r.= Larg|eChain [|
|00004e60| 43 68 61 69 6e 4e 75 6d | 62 65 72 5d 3b 0a 20 20 |ChainNum|ber];. |
|00004e70| 20 20 20 20 42 6c 6f 63 | 6b 50 74 72 2d 3e 53 69 | Bloc|kPtr->Si|
|00004e80| 7a 65 09 09 3d 20 42 79 | 74 65 43 6f 75 6e 74 3b |ze..= By|teCount;|
|00004e90| 0a 20 20 20 20 20 20 4c | 61 72 67 65 43 68 61 69 |. L|argeChai|
|00004ea0| 6e 20 5b 43 68 61 69 6e | 4e 75 6d 62 65 72 5d 09 |n [Chain|Number].|
|00004eb0| 3d 20 42 6c 6f 63 6b 50 | 74 72 3b 0a 20 20 20 7d |= BlockP|tr;. }|
|00004ec0| 0a 7d 0a 0a 76 6f 69 64 | 20 49 6e 69 74 4d 65 6d |.}..void| InitMem|
|00004ed0| 6f 72 79 20 28 29 0a 7b | 0a 20 20 20 72 65 67 69 |ory ().{|. regi|
|00004ee0| 73 74 65 72 20 69 6e 74 | 20 69 3b 0a 0a 20 20 20 |ster int| i;.. |
|00004ef0| 66 6f 72 20 28 69 20 3d | 20 4d 69 6e 53 69 7a 65 |for (i =| MinSize|
|00004f00| 53 6d 61 6c 6c 42 6c 6f | 63 6b 3b 20 69 20 3c 3d |SmallBlo|ck; i <=|
|00004f10| 20 4d 61 78 53 69 7a 65 | 53 6d 61 6c 6c 42 6c 6f | MaxSize|SmallBlo|
|00004f20| 63 6b 3b 20 69 20 2b 3d | 20 32 29 20 7b 0a 20 20 |ck; i +=| 2) {. |
|00004f30| 20 20 20 20 53 6d 61 6c | 6c 43 68 61 69 6e 20 5b | Smal|lChain [|
|00004f40| 69 5d 20 3d 20 4e 49 4c | 3b 0a 20 20 20 7d 0a 20 |i] = NIL|;. }. |
|00004f50| 20 20 66 6f 72 20 28 69 | 20 3d 20 4d 69 6e 53 69 | for (i| = MinSi|
|00004f60| 7a 65 4c 61 72 67 65 42 | 6c 6f 63 6b 4c 6f 67 3b |zeLargeB|lockLog;|
|00004f70| 20 69 20 3c 3d 20 4d 61 | 78 53 69 7a 65 4c 61 72 | i <= Ma|xSizeLar|
|00004f80| 67 65 42 6c 6f 63 6b 4c | 6f 67 3b 20 69 20 2b 2b |geBlockL|og; i ++|
|00004f90| 29 20 7b 0a 20 20 20 20 | 20 20 4c 61 72 67 65 43 |) {. | LargeC|
|00004fa0| 68 61 69 6e 20 5b 69 5d | 20 3d 20 4e 49 4c 3b 0a |hain [i]| = NIL;.|
|00004fb0| 20 20 20 7d 0a 20 20 20 | 4d 65 6d 6f 72 79 55 73 | }. |MemoryUs|
|00004fc0| 65 64 09 3d 20 30 3b 0a | 20 20 20 50 6f 6f 6c 46 |ed.= 0;.| PoolF|
|00004fd0| 72 65 65 50 74 72 09 3d | 20 30 3b 0a 20 20 20 50 |reePtr.=| 0;. P|
|00004fe0| 6f 6f 6c 45 6e 64 50 74 | 72 09 3d 20 30 3b 0a 7d |oolEndPt|r.= 0;.}|
|00004ff0| 0a 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005000| 65 70 2f 4d 65 6d 6f 72 | 79 2e 68 00 00 00 00 00 |ep/Memor|y.h.....|
|00005010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005040| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005060| 00 00 00 00 20 20 20 36 | 34 34 20 00 20 20 20 32 |.... 6|44 . 2|
|00005070| 30 30 20 00 20 20 20 20 | 31 33 20 00 20 20 20 20 |00 . |13 . |
|00005080| 20 20 20 32 34 32 31 20 | 20 35 33 31 31 34 32 30 | 2421 | 5311420|
|00005090| 32 37 36 20 20 20 36 31 | 31 37 00 20 00 00 00 00 |276 61|17. ....|
|000050a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000050b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000050c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000050d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000050e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000050f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005100| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005110| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005120| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005130| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005140| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005150| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005160| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005170| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005180| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005190| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000051a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000051b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000051c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000051d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000051e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000051f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005200| 23 20 69 66 6e 64 65 66 | 20 79 79 4d 65 6d 6f 72 |# ifndef| yyMemor|
|00005210| 79 0a 23 20 64 65 66 69 | 6e 65 20 79 79 4d 65 6d |y.# defi|ne yyMem|
|00005220| 6f 72 79 0a 0a 2f 2a 20 | 24 49 64 3a 20 4d 65 6d |ory../* |$Id: Mem|
|00005230| 6f 72 79 2e 68 2c 76 20 | 31 2e 35 20 31 39 39 32 |ory.h,v |1.5 1992|
|00005240| 2f 30 38 2f 30 37 20 31 | 34 3a 33 36 3a 35 31 20 |/08/07 1|4:36:51 |
|00005250| 67 72 6f 73 63 68 20 72 | 65 6c 20 24 20 2a 2f 0a |grosch r|el $ */.|
|00005260| 0a 2f 2a 20 24 4c 6f 67 | 3a 20 4d 65 6d 6f 72 79 |./* $Log|: Memory|
|00005270| 2e 68 2c 76 20 24 0a 20 | 2a 20 52 65 76 69 73 69 |.h,v $. |* Revisi|
|00005280| 6f 6e 20 31 2e 35 20 20 | 31 39 39 32 2f 30 38 2f |on 1.5 |1992/08/|
|00005290| 30 37 20 20 31 34 3a 33 | 36 3a 35 31 20 20 67 72 |07 14:3|6:51 gr|
|000052a0| 6f 73 63 68 0a 20 2a 20 | 61 64 64 65 64 20 63 6f |osch. * |added co|
|000052b0| 6d 6d 65 6e 74 73 0a 20 | 2a 0a 20 2a 20 52 65 76 |mments. |*. * Rev|
|000052c0| 69 73 69 6f 6e 20 31 2e | 34 20 20 31 39 39 31 2f |ision 1.|4 1991/|
|000052d0| 31 31 2f 32 31 20 20 31 | 34 3a 32 38 3a 31 36 20 |11/21 1|4:28:16 |
|000052e0| 20 67 72 6f 73 63 68 0a | 20 2a 20 6e 65 77 20 76 | grosch.| * new v|
|000052f0| 65 72 73 69 6f 6e 20 6f | 66 20 52 43 53 20 6f 6e |ersion o|f RCS on|
|00005300| 20 53 50 41 52 43 0a 20 | 2a 0a 20 2a 20 52 65 76 | SPARC. |*. * Rev|
|00005310| 69 73 69 6f 6e 20 31 2e | 33 20 20 39 31 2f 30 37 |ision 1.|3 91/07|
|00005320| 2f 31 37 20 20 31 37 3a | 32 33 3a 31 34 20 20 67 |/17 17:|23:14 g|
|00005330| 72 6f 73 63 68 0a 20 2a | 20 69 6e 74 72 6f 64 75 |rosch. *| introdu|
|00005340| 63 65 64 20 41 52 47 53 | 20 74 72 69 63 6b 20 66 |ced ARGS| trick f|
|00005350| 6f 72 20 41 4e 53 49 20 | 63 6f 6d 70 61 74 69 62 |or ANSI |compatib|
|00005360| 69 6c 69 74 79 0a 20 2a | 20 0a 20 2a 20 52 65 76 |ility. *| . * Rev|
|00005370| 69 73 69 6f 6e 20 31 2e | 32 20 20 39 30 2f 31 32 |ision 1.|2 90/12|
|00005380| 2f 31 34 20 20 31 35 3a | 35 35 3a 35 33 20 20 67 |/14 15:|55:53 g|
|00005390| 72 6f 73 63 68 0a 20 2a | 20 69 6e 74 72 6f 64 75 |rosch. *| introdu|
|000053a0| 63 65 64 20 76 61 72 69 | 61 62 6c 65 20 4d 65 6d |ced vari|able Mem|
|000053b0| 6f 72 79 55 73 65 64 0a | 20 2a 20 0a 20 2a 20 52 |oryUsed.| * . * R|
|000053c0| 65 76 69 73 69 6f 6e 20 | 31 2e 31 20 20 39 30 2f |evision |1.1 90/|
|000053d0| 30 37 2f 30 34 20 20 31 | 34 3a 33 34 3a 30 30 20 |07/04 1|4:34:00 |
|000053e0| 20 67 72 6f 73 63 68 0a | 20 2a 20 69 6e 74 72 6f | grosch.| * intro|
|000053f0| 64 75 63 65 64 20 63 6f | 6e 64 69 74 69 6f 6e 61 |duced co|nditiona|
|00005400| 6c 20 69 6e 63 6c 75 64 | 65 0a 20 2a 20 0a 20 2a |l includ|e. * . *|
|00005410| 20 52 65 76 69 73 69 6f | 6e 20 31 2e 30 20 20 38 | Revisio|n 1.0 8|
|00005420| 38 2f 31 30 2f 30 34 20 | 20 31 31 3a 34 34 3a 34 |8/10/04 | 11:44:4|
|00005430| 32 20 20 67 72 6f 73 63 | 68 0a 20 2a 20 49 6e 69 |2 grosc|h. * Ini|
|00005440| 74 69 61 6c 20 72 65 76 | 69 73 69 6f 6e 0a 20 2a |tial rev|ision. *|
|00005450| 20 0a 20 2a 2f 0a 0a 2f | 2a 20 49 63 68 2c 20 44 | . */../|* Ich, D|
|00005460| 6f 6b 74 6f 72 20 4a 6f | 73 65 66 20 47 72 6f 73 |oktor Jo|sef Gros|
|00005470| 63 68 2c 20 49 6e 66 6f | 72 6d 61 74 69 6b 65 72 |ch, Info|rmatiker|
|00005480| 2c 20 53 65 70 74 2e 20 | 31 39 38 37 20 2a 2f 0a |, Sept. |1987 */.|
|00005490| 0a 23 20 69 66 64 65 66 | 20 5f 5f 53 54 44 43 5f |.# ifdef| __STDC_|
|000054a0| 5f 0a 23 20 64 65 66 69 | 6e 65 20 41 52 47 53 28 |_.# defi|ne ARGS(|
|000054b0| 70 61 72 61 6d 65 74 65 | 72 73 29 09 70 61 72 61 |paramete|rs).para|
|000054c0| 6d 65 74 65 72 73 0a 23 | 20 65 6c 73 65 0a 23 20 |meters.#| else.# |
|000054d0| 64 65 66 69 6e 65 20 41 | 52 47 53 28 70 61 72 61 |define A|RGS(para|
|000054e0| 6d 65 74 65 72 73 29 09 | 28 29 0a 23 20 65 6e 64 |meters).|().# end|
|000054f0| 69 66 0a 0a 65 78 74 65 | 72 6e 20 75 6e 73 69 67 |if..exte|rn unsig|
|00005500| 6e 65 64 20 6c 6f 6e 67 | 20 4d 65 6d 6f 72 79 55 |ned long| MemoryU|
|00005510| 73 65 64 09 3b 0a 09 09 | 09 2f 2a 20 48 6f 6c 64 |sed.;...|./* Hold|
|00005520| 73 20 74 68 65 20 74 6f | 74 61 6c 20 61 6d 6f 75 |s the to|tal amou|
|00005530| 6e 74 20 6f 66 20 6d 65 | 6d 6f 72 79 20 6d 61 6e |nt of me|mory man|
|00005540| 61 67 65 64 20 62 79 09 | 2a 2f 0a 09 09 09 2f 2a |aged by.|*/..../*|
|00005550| 20 74 68 69 73 20 6d 6f | 64 75 6c 65 2e 09 09 09 | this mo|dule....|
|00005560| 09 09 2a 2f 0a 0a 65 78 | 74 65 72 6e 20 76 6f 69 |..*/..ex|tern voi|
|00005570| 64 09 49 6e 69 74 4d 65 | 6d 6f 72 79 09 28 29 3b |d.InitMe|mory.();|
|00005580| 0a 09 09 09 2f 2a 20 54 | 68 65 20 6d 65 6d 6f 72 |..../* T|he memor|
|00005590| 79 20 6d 6f 64 75 6c 65 | 20 69 73 20 69 6e 69 74 |y module| is init|
|000055a0| 69 61 6c 69 7a 65 64 2e | 09 09 2a 2f 0a 0a 65 78 |ialized.|..*/..ex|
|000055b0| 74 65 72 6e 20 63 68 61 | 72 20 2a 09 41 6c 6c 6f |tern cha|r *.Allo|
|000055c0| 63 09 09 41 52 47 53 28 | 28 72 65 67 69 73 74 65 |c..ARGS(|(registe|
|000055d0| 72 20 75 6e 73 69 67 6e | 65 64 20 6c 6f 6e 67 20 |r unsign|ed long |
|000055e0| 42 79 74 65 43 6f 75 6e | 74 29 29 3b 0a 09 09 09 |ByteCoun|t));....|
|000055f0| 2f 2a 20 52 65 74 75 72 | 6e 73 20 61 20 70 6f 69 |/* Retur|ns a poi|
|00005600| 6e 74 65 72 20 74 6f 20 | 64 79 6e 61 6d 69 63 61 |nter to |dynamica|
|00005610| 6c 6c 79 20 61 6c 6c 6f | 63 61 74 65 64 09 2a 2f |lly allo|cated.*/|
|00005620| 0a 09 09 09 2f 2a 20 73 | 70 61 63 65 20 6f 66 20 |..../* s|pace of |
|00005630| 73 69 7a 65 20 27 42 79 | 74 65 43 6f 75 6e 74 27 |size 'By|teCount'|
|00005640| 20 62 79 74 65 73 2e 09 | 09 2a 2f 0a 0a 65 78 74 | bytes..|.*/..ext|
|00005650| 65 72 6e 20 76 6f 69 64 | 09 46 72 65 65 09 09 41 |ern void|.Free..A|
|00005660| 52 47 53 28 28 75 6e 73 | 69 67 6e 65 64 20 6c 6f |RGS((uns|igned lo|
|00005670| 6e 67 20 42 79 74 65 43 | 6f 75 6e 74 2c 20 63 68 |ng ByteC|ount, ch|
|00005680| 61 72 20 2a 20 61 29 29 | 3b 0a 09 09 09 2f 2a 20 |ar * a))|;..../* |
|00005690| 54 68 65 20 64 79 6e 61 | 6d 69 63 61 6c 6c 79 20 |The dyna|mically |
|000056a0| 61 6c 6c 6f 63 61 74 65 | 64 20 73 70 61 63 65 20 |allocate|d space |
|000056b0| 73 74 61 72 74 69 6e 67 | 20 61 74 09 2a 2f 0a 09 |starting| at.*/..|
|000056c0| 09 09 2f 2a 20 61 64 64 | 72 65 73 73 20 27 61 27 |../* add|ress 'a'|
|000056d0| 20 6f 66 20 73 69 7a 65 | 20 27 42 79 74 65 43 6f | of size| 'ByteCo|
|000056e0| 75 6e 74 27 20 62 79 74 | 65 73 20 69 73 09 2a 2f |unt' byt|es is.*/|
|000056f0| 0a 09 09 09 2f 2a 20 72 | 65 6c 65 61 73 65 64 2e |..../* r|eleased.|
|00005700| 09 09 09 09 09 2a 2f 0a | 0a 23 20 65 6e 64 69 66 |.....*/.|.# endif|
|00005710| 0a 20 20 20 20 20 20 20 | 50 72 65 76 69 6f 75 73 |. |Previous|
|00005720| 42 6c 6f 63 6b 2d 3e 53 | 75 63 63 65 73 73 6f 72 |Block->S|uccessor|
|00005730| 20 3d 20 43 75 72 72 65 | 6e 74 42 6c 6f 63 6b 2d | = Curre|ntBlock-|
|00005740| 3e 53 75 63 63 65 73 73 | 6f 72 3b 0a 09 20 20 20 |>Success|or;.. |
|00005750| 20 20 20 20 72 65 74 75 | 72 6e 20 28 63 68 61 72 | retu|rn (char|
|00005760| 20 2a 29 20 43 75 72 72 | 65 6e 74 42 6c 6f 63 6b | *) Curr|entBlock|
|00005770| 3b 0a 09 20 20 20 20 7d | 0a 09 20 20 20 20 69 66 |;.. }|.. if|
|00005780| 20 28 43 75 72 72 65 6e | 74 42 6c 6f 63 6b 53 69 | (Curren|tBlockSi|
|00005790| 7a 65 20 3c 20 42 65 73 | 74 42 6c 6f 63 6b 53 69 |ze < Bes|tBlockSi|
|000057a0| 7a 65 29 20 7b 20 2f 2a | 20 69 6d 70 72 6f 76 65 |ze) { /*| improve|
|000057b0| 20 61 70 70 72 6f 78 69 | 6d 61 74 69 6f 6e 20 2a | approxi|mation *|
|000057c0| 2f 0a 09 20 20 20 20 20 | 20 20 42 65 73 74 42 6c |/.. | BestBl|
|000057d0| 6f 63 6b 09 3d 20 43 75 | 72 72 65 6e 74 42 6c 6f |ock.= Cu|rrentBlo|
|000057e0| 63 6b 3b 0a 09 20 20 20 | 20 20 20 20 42 65 73 74 |ck;.. | Best|
|000057f0| 42 6c 6f 63 6b 53 69 7a | 65 09 3d 20 43 75 72 72 |BlockSiz|e.= Curr|
|00005800| 65 70 2f 44 79 6e 41 72 | 72 61 79 2e 63 00 00 00 |ep/DynAr|ray.c...|
|00005810| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005820| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005830| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005840| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005850| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005860| 00 00 00 00 20 20 20 36 | 34 34 20 00 20 20 20 32 |.... 6|44 . 2|
|00005870| 30 30 20 00 20 20 20 20 | 31 33 20 00 20 20 20 20 |00 . |13 . |
|00005880| 20 20 20 35 34 32 32 20 | 20 35 33 31 31 34 32 30 | 5422 | 5311420|
|00005890| 32 37 36 20 20 20 36 33 | 37 37 00 20 00 00 00 00 |276 63|77. ....|
|000058a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000058b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000058c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000058d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000058e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000058f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005900| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005910| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005920| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005930| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005940| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005950| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005960| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005970| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005980| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005990| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000059a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000059b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000059c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000059d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000059e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000059f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005a00| 2f 2a 20 24 49 64 3a 20 | 44 79 6e 41 72 72 61 79 |/* $Id: |DynArray|
|00005a10| 2e 63 2c 76 20 31 2e 36 | 20 31 39 39 32 2f 30 38 |.c,v 1.6| 1992/08|
|00005a20| 2f 31 37 20 31 31 3a 34 | 32 3a 32 34 20 67 72 6f |/17 11:4|2:24 gro|
|00005a30| 73 63 68 20 72 65 6c 20 | 24 20 2a 2f 0a 0a 2f 2a |sch rel |$ */../*|
|00005a40| 20 24 4c 6f 67 3a 20 44 | 79 6e 41 72 72 61 79 2e | $Log: D|ynArray.|
|00005a50| 63 2c 76 20 24 0a 20 2a | 20 52 65 76 69 73 69 6f |c,v $. *| Revisio|
|00005a60| 6e 20 31 2e 36 20 20 31 | 39 39 32 2f 30 38 2f 31 |n 1.6 1|992/08/1|
|00005a70| 37 20 20 31 31 3a 34 32 | 3a 32 34 20 20 67 72 6f |7 11:42|:24 gro|
|00005a80| 73 63 68 0a 20 2a 20 61 | 64 64 65 64 20 65 72 72 |sch. * a|dded err|
|00005a90| 6f 72 20 6d 65 73 73 61 | 67 65 20 69 66 20 6f 75 |or messa|ge if ou|
|00005aa0| 74 20 6f 66 20 6d 65 6d | 6f 72 79 0a 20 2a 0a 20 |t of mem|ory. *. |
|00005ab0| 2a 20 52 65 76 69 73 69 | 6f 6e 20 31 2e 35 20 20 |* Revisi|on 1.5 |
|00005ac0| 31 39 39 32 2f 30 35 2f | 30 35 20 20 31 33 3a 31 |1992/05/|05 13:1|
|00005ad0| 39 3a 30 35 20 20 67 72 | 6f 73 63 68 0a 20 2a 20 |9:05 gr|osch. * |
|00005ae0| 61 64 64 65 64 20 72 63 | 73 69 64 0a 20 2a 0a 20 |added rc|sid. *. |
|00005af0| 2a 20 52 65 76 69 73 69 | 6f 6e 20 31 2e 34 20 20 |* Revisi|on 1.4 |
|00005b00| 31 39 39 31 2f 31 31 2f | 32 31 20 20 31 34 3a 32 |1991/11/|21 14:2|
|00005b10| 38 3a 31 36 20 20 67 72 | 6f 73 63 68 0a 20 2a 20 |8:16 gr|osch. * |
|00005b20| 6e 65 77 20 76 65 72 73 | 69 6f 6e 20 6f 66 20 52 |new vers|ion of R|
|00005b30| 43 53 20 6f 6e 20 53 50 | 41 52 43 0a 20 2a 0a 20 |CS on SP|ARC. *. |
|00005b40| 2a 20 52 65 76 69 73 69 | 6f 6e 20 31 2e 33 20 20 |* Revisi|on 1.3 |
|00005b50| 39 30 2f 30 39 2f 30 34 | 20 20 31 37 3a 33 32 3a |90/09/04| 17:32:|
|00005b60| 30 37 20 20 67 72 6f 73 | 63 68 0a 20 2a 20 61 75 |07 gros|ch. * au|
|00005b70| 74 6f 6d 61 74 69 63 20 | 64 65 74 65 72 6d 69 6e |tomatic |determin|
|00005b80| 61 74 69 6f 6e 20 6f 66 | 20 61 6c 69 67 6e 6d 65 |ation of| alignme|
|00005b90| 6e 74 0a 20 2a 20 0a 20 | 2a 20 52 65 76 69 73 69 |nt. * . |* Revisi|
|00005ba0| 6f 6e 20 31 2e 32 20 20 | 39 30 2f 30 37 2f 30 34 |on 1.2 |90/07/04|
|00005bb0| 20 20 31 34 3a 33 33 3a | 35 31 20 20 67 72 6f 73 | 14:33:|51 gros|
|00005bc0| 63 68 0a 20 2a 20 69 6e | 74 72 6f 64 75 63 65 64 |ch. * in|troduced|
|00005bd0| 20 63 6f 6e 64 69 74 69 | 6f 6e 61 6c 20 69 6e 63 | conditi|onal inc|
|00005be0| 6c 75 64 65 0a 20 2a 20 | 0a 20 2a 20 52 65 76 69 |lude. * |. * Revi|
|00005bf0| 73 69 6f 6e 20 31 2e 31 | 20 20 38 38 2f 31 30 2f |sion 1.1| 88/10/|
|00005c00| 31 38 20 20 31 37 3a 33 | 32 3a 30 35 20 20 67 72 |18 17:3|2:05 gr|
|00005c10| 6f 73 63 68 0a 20 2a 20 | 66 69 78 65 64 20 62 75 |osch. * |fixed bu|
|00005c20| 67 3a 20 69 6e 76 61 72 | 69 61 6e 74 20 6d 75 73 |g: invar|iant mus|
|00005c30| 74 20 68 6f 6c 64 3a 20 | 45 6c 6d 74 43 6f 75 6e |t hold: |ElmtCoun|
|00005c40| 74 20 2a 20 41 6c 69 67 | 6e 65 64 53 69 7a 65 20 |t * Alig|nedSize |
|00005c50| 28 45 6c 6d 74 53 69 7a | 65 29 20 25 20 34 20 3d |(ElmtSiz|e) % 4 =|
|00005c60| 3d 20 30 0a 20 2a 20 0a | 20 2a 20 52 65 76 69 73 |= 0. * .| * Revis|
|00005c70| 69 6f 6e 20 31 2e 30 20 | 20 38 38 2f 31 30 2f 30 |ion 1.0 | 88/10/0|
|00005c80| 34 20 20 31 31 3a 34 34 | 3a 33 35 20 20 67 72 6f |4 11:44|:35 gro|
|00005c90| 73 63 68 0a 20 2a 20 49 | 6e 69 74 69 61 6c 20 72 |sch. * I|nitial r|
|00005ca0| 65 76 69 73 69 6f 6e 0a | 20 2a 20 0a 20 2a 2f 0a |evision.| * . */.|
|00005cb0| 0a 2f 2a 20 49 63 68 2c | 20 44 6f 6b 74 6f 72 20 |./* Ich,| Doktor |
|00005cc0| 4a 6f 73 65 66 20 47 72 | 6f 73 63 68 2c 20 49 6e |Josef Gr|osch, In|
|00005cd0| 66 6f 72 6d 61 74 69 6b | 65 72 2c 20 53 65 70 74 |formatik|er, Sept|
|00005ce0| 2e 20 31 39 38 37 20 2a | 2f 0a 0a 73 74 61 74 69 |. 1987 *|/..stati|
|00005cf0| 63 20 63 68 61 72 20 72 | 63 73 69 64 20 5b 5d 20 |c char r|csid [] |
|00005d00| 3d 20 22 24 49 64 3a 20 | 44 79 6e 41 72 72 61 79 |= "$Id: |DynArray|
|00005d10| 2e 63 2c 76 20 31 2e 36 | 20 31 39 39 32 2f 30 38 |.c,v 1.6| 1992/08|
|00005d20| 2f 31 37 20 31 31 3a 34 | 32 3a 32 34 20 67 72 6f |/17 11:4|2:24 gro|
|00005d30| 73 63 68 20 72 65 6c 20 | 24 22 3b 0a 0a 23 20 69 |sch rel |$";..# i|
|00005d40| 6e 63 6c 75 64 65 20 22 | 72 61 74 63 2e 68 22 0a |nclude "|ratc.h".|
|00005d50| 23 20 69 6e 63 6c 75 64 | 65 20 22 44 79 6e 41 72 |# includ|e "DynAr|
|00005d60| 72 61 79 2e 68 22 0a 23 | 20 69 6e 63 6c 75 64 65 |ray.h".#| include|
|00005d70| 20 3c 73 74 64 69 6f 2e | 68 3e 0a 23 20 69 6e 63 | <stdio.|h>.# inc|
|00005d80| 6c 75 64 65 20 22 47 65 | 6e 65 72 61 6c 2e 68 22 |lude "Ge|neral.h"|
|00005d90| 0a 23 20 69 6e 63 6c 75 | 64 65 20 22 4d 65 6d 6f |.# inclu|de "Memo|
|00005da0| 72 79 2e 68 22 0a 0a 2f | 2a 20 49 4e 56 41 52 49 |ry.h"../|* INVARI|
|00005db0| 41 4e 54 20 45 6c 6d 74 | 43 6f 75 6e 74 20 2a 20 |ANT Elmt|Count * |
|00005dc0| 41 6c 69 67 6e 65 64 53 | 69 7a 65 20 28 45 6c 6d |AlignedS|ize (Elm|
|00005dd0| 74 53 69 7a 65 29 20 25 | 20 73 69 7a 65 6f 66 20 |tSize) %| sizeof |
|00005de0| 28 6c 6f 6e 67 29 20 3d | 3d 20 30 20 2a 2f 0a 0a |(long) =|= 0 */..|
|00005df0| 73 74 61 74 69 63 20 75 | 6e 73 69 67 6e 65 64 20 |static u|nsigned |
|00005e00| 6c 6f 6e 67 20 41 6c 69 | 67 6e 65 64 53 69 7a 65 |long Ali|gnedSize|
|00005e10| 20 28 45 6c 6d 74 53 69 | 7a 65 29 0a 20 20 20 75 | (ElmtSi|ze). u|
|00005e20| 6e 73 69 67 6e 65 64 20 | 6c 6f 6e 67 09 45 6c 6d |nsigned |long.Elm|
|00005e30| 74 53 69 7a 65 3b 0a 20 | 20 20 7b 0a 20 20 20 20 |tSize;. | {. |
|00005e40| 20 20 72 65 67 69 73 74 | 65 72 20 75 6e 73 69 67 | regist|er unsig|
|00005e50| 6e 65 64 20 6c 6f 6e 67 | 20 41 6c 69 67 6e 3b 0a |ned long| Align;.|
|00005e60| 0a 20 20 20 20 20 20 69 | 66 20 28 45 6c 6d 74 53 |. i|f (ElmtS|
|00005e70| 69 7a 65 20 3e 3d 20 79 | 79 4d 61 78 41 6c 69 67 |ize >= y|yMaxAlig|
|00005e80| 6e 29 20 7b 0a 09 20 41 | 6c 69 67 6e 20 3d 20 79 |n) {.. A|lign = y|
|00005e90| 79 4d 61 78 41 6c 69 67 | 6e 3b 0a 20 20 20 20 20 |yMaxAlig|n;. |
|00005ea0| 20 7d 20 65 6c 73 65 20 | 7b 0a 09 20 41 6c 69 67 | } else |{.. Alig|
|00005eb0| 6e 20 3d 20 45 78 70 32 | 20 28 4c 6f 67 32 20 28 |n = Exp2| (Log2 (|
|00005ec0| 45 6c 6d 74 53 69 7a 65 | 20 2b 20 45 6c 6d 74 53 |ElmtSize| + ElmtS|
|00005ed0| 69 7a 65 20 2d 20 32 29 | 29 3b 0a 20 20 20 20 20 |ize - 2)|);. |
|00005ee0| 20 7d 0a 20 20 20 20 20 | 20 72 65 74 75 72 6e 20 | }. | return |
|00005ef0| 45 6c 6d 74 53 69 7a 65 | 20 2b 20 41 6c 69 67 6e |ElmtSize| + Align|
|00005f00| 20 2d 20 31 20 2d 20 28 | 45 6c 6d 74 53 69 7a 65 | - 1 - (|ElmtSize|
|00005f10| 20 2d 20 31 29 20 25 20 | 41 6c 69 67 6e 3b 0a 20 | - 1) % |Align;. |
|00005f20| 20 20 7d 0a 0a 76 6f 69 | 64 20 4d 61 6b 65 41 72 | }..voi|d MakeAr|
|00005f30| 72 61 79 20 28 41 72 72 | 61 79 50 74 72 2c 20 45 |ray (Arr|ayPtr, E|
|00005f40| 6c 6d 74 43 6f 75 6e 74 | 2c 20 45 6c 6d 74 53 69 |lmtCount|, ElmtSi|
|00005f50| 7a 65 29 0a 20 20 20 63 | 68 61 72 20 2a 20 2a 09 |ze). c|har * *.|
|00005f60| 41 72 72 61 79 50 74 72 | 09 3b 0a 20 20 20 75 6e |ArrayPtr|.;. un|
|00005f70| 73 69 67 6e 65 64 20 6c | 6f 6e 67 20 2a 20 45 6c |signed l|ong * El|
|00005f80| 6d 74 43 6f 75 6e 74 09 | 3b 0a 20 20 20 75 6e 73 |mtCount.|;. uns|
|00005f90| 69 67 6e 65 64 20 6c 6f | 6e 67 20 45 6c 6d 74 53 |igned lo|ng ElmtS|
|00005fa0| 69 7a 65 09 3b 0a 20 20 | 20 7b 0a 20 20 20 20 20 |ize.;. | {. |
|00005fb0| 20 45 6c 6d 74 53 69 7a | 65 20 3d 20 41 6c 69 67 | ElmtSiz|e = Alig|
|00005fc0| 6e 65 64 53 69 7a 65 20 | 28 45 6c 6d 74 53 69 7a |nedSize |(ElmtSiz|
|00005fd0| 65 29 3b 0a 20 20 20 20 | 20 20 73 77 69 74 63 68 |e);. | switch|
|00005fe0| 20 28 45 6c 6d 74 53 69 | 7a 65 20 25 20 34 29 20 | (ElmtSi|ze % 4) |
|00005ff0| 7b 0a 20 20 20 20 20 20 | 63 61 73 65 20 30 3a 20 |{. |case 0: |
|00006000| 62 72 65 61 6b 3b 0a 20 | 20 20 20 20 20 63 61 73 |break;. | cas|
|00006010| 65 20 32 3a 20 69 66 20 | 28 2a 20 45 6c 6d 74 43 |e 2: if |(* ElmtC|
|00006020| 6f 75 6e 74 20 26 20 31 | 29 20 28 2a 20 45 6c 6d |ount & 1|) (* Elm|
|00006030| 74 43 6f 75 6e 74 29 20 | 2b 2b 3b 20 62 72 65 61 |tCount) |++; brea|
|00006040| 6b 3b 0a 20 20 20 20 20 | 20 63 61 73 65 20 31 3a |k;. | case 1:|
|00006050| 0a 20 20 20 20 20 20 63 | 61 73 65 20 33 3a 20 2a |. c|ase 3: *|
|00006060| 20 45 6c 6d 74 43 6f 75 | 6e 74 20 2b 3d 20 73 69 | ElmtCou|nt += si|
|00006070| 7a 65 6f 66 20 28 6c 6f | 6e 67 29 20 2d 20 31 20 |zeof (lo|ng) - 1 |
|00006080| 2d 20 28 2a 20 45 6c 6d | 74 43 6f 75 6e 74 20 2d |- (* Elm|tCount -|
|00006090| 20 31 29 20 25 20 73 69 | 7a 65 6f 66 20 28 6c 6f | 1) % si|zeof (lo|
|000060a0| 6e 67 29 3b 20 62 72 65 | 61 6b 3b 0a 20 20 20 20 |ng); bre|ak;. |
|000060b0| 20 20 7d 0a 20 20 20 20 | 20 20 2a 20 41 72 72 61 | }. | * Arra|
|000060c0| 79 50 74 72 20 3d 20 41 | 6c 6c 6f 63 20 28 2a 20 |yPtr = A|lloc (* |
|000060d0| 45 6c 6d 74 43 6f 75 6e | 74 20 2a 20 45 6c 6d 74 |ElmtCoun|t * Elmt|
|000060e0| 53 69 7a 65 29 3b 0a 20 | 20 20 20 20 20 69 66 20 |Size);. | if |
|000060f0| 28 2a 20 41 72 72 61 79 | 50 74 72 20 3d 3d 20 4e |(* Array|Ptr == N|
|00006100| 55 4c 4c 29 20 28 76 6f | 69 64 29 20 66 70 72 69 |ULL) (vo|id) fpri|
|00006110| 6e 74 66 20 28 73 74 64 | 65 72 72 2c 20 22 4d 61 |ntf (std|err, "Ma|
|00006120| 6b 65 41 72 72 61 79 3a | 20 6f 75 74 20 6f 66 20 |keArray:| out of |
|00006130| 6d 65 6d 6f 72 79 5c 6e | 22 29 3b 0a 20 20 20 7d |memory\n|");. }|
|00006140| 0a 0a 76 6f 69 64 20 45 | 78 74 65 6e 64 41 72 72 |..void E|xtendArr|
|00006150| 61 79 20 28 41 72 72 61 | 79 50 74 72 2c 20 45 6c |ay (Arra|yPtr, El|
|00006160| 6d 74 43 6f 75 6e 74 2c | 20 45 6c 6d 74 53 69 7a |mtCount,| ElmtSiz|
|00006170| 65 29 0a 20 20 20 63 68 | 61 72 20 2a 20 2a 09 41 |e). ch|ar * *.A|
|00006180| 72 72 61 79 50 74 72 09 | 3b 0a 20 20 20 75 6e 73 |rrayPtr.|;. uns|
|00006190| 69 67 6e 65 64 20 6c 6f | 6e 67 20 2a 20 45 6c 6d |igned lo|ng * Elm|
|000061a0| 74 43 6f 75 6e 74 09 3b | 0a 20 20 20 75 6e 73 69 |tCount.;|. unsi|
|000061b0| 67 6e 65 64 20 6c 6f 6e | 67 20 45 6c 6d 74 53 69 |gned lon|g ElmtSi|
|000061c0| 7a 65 09 3b 0a 20 20 20 | 7b 0a 20 20 20 20 20 20 |ze.;. |{. |
|000061d0| 09 09 63 68 61 72 20 2a | 09 4e 65 77 50 74 72 09 |..char *|.NewPtr.|
|000061e0| 3b 0a 20 20 20 20 20 20 | 72 65 67 69 73 74 65 72 |;. |register|
|000061f0| 09 6c 6f 6e 67 20 2a 09 | 53 6f 75 72 63 65 09 3b |.long *.|Source.;|
|00006200| 0a 20 20 20 20 20 20 72 | 65 67 69 73 74 65 72 09 |. r|egister.|
|00006210| 6c 6f 6e 67 20 2a 09 54 | 61 72 67 65 74 09 3b 0a |long *.T|arget.;.|
|00006220| 20 20 20 20 20 20 72 65 | 67 69 73 74 65 72 09 6c | re|gister.l|
|00006230| 6f 6e 67 09 69 20 20 20 | 20 20 09 3b 0a 0a 20 20 |ong.i | .;.. |
|00006240| 20 20 20 20 45 6c 6d 74 | 53 69 7a 65 20 3d 20 41 | Elmt|Size = A|
|00006250| 6c 69 67 6e 65 64 53 69 | 7a 65 20 28 45 6c 6d 74 |lignedSi|ze (Elmt|
|00006260| 53 69 7a 65 29 3b 0a 20 | 20 20 20 20 20 4e 65 77 |Size);. | New|
|00006270| 50 74 72 20 3d 20 41 6c | 6c 6f 63 20 28 2a 20 45 |Ptr = Al|loc (* E|
|00006280| 6c 6d 74 43 6f 75 6e 74 | 20 2a 20 45 6c 6d 74 53 |lmtCount| * ElmtS|
|00006290| 69 7a 65 20 2a 20 32 29 | 3b 0a 20 20 20 20 20 20 |ize * 2)|;. |
|000062a0| 53 6f 75 72 63 65 20 3d | 20 28 6c 6f 6e 67 20 2a |Source =| (long *|
|000062b0| 29 20 2a 20 41 72 72 61 | 79 50 74 72 3b 0a 20 20 |) * Arra|yPtr;. |
|000062c0| 20 20 20 20 54 61 72 67 | 65 74 20 3d 20 28 6c 6f | Targ|et = (lo|
|000062d0| 6e 67 20 2a 29 20 4e 65 | 77 50 74 72 3b 0a 20 20 |ng *) Ne|wPtr;. |
|000062e0| 20 20 20 20 69 20 20 20 | 20 20 20 3d 20 2a 20 45 | i | = * E|
|000062f0| 6c 6d 74 43 6f 75 6e 74 | 20 2a 20 45 6c 6d 74 53 |lmtCount| * ElmtS|
|00006300| 69 7a 65 20 2f 20 73 69 | 7a 65 6f 66 20 28 6c 6f |ize / si|zeof (lo|
|00006310| 6e 67 29 3b 0a 0a 20 20 | 20 20 20 20 69 66 20 28 |ng);.. | if (|
|00006320| 4e 65 77 50 74 72 20 3d | 3d 20 4e 55 4c 4c 29 0a |NewPtr =|= NULL).|
|00006330| 09 20 28 76 6f 69 64 29 | 20 66 70 72 69 6e 74 66 |. (void)| fprintf|
|00006340| 20 28 73 74 64 65 72 72 | 2c 20 22 45 78 74 65 6e | (stderr|, "Exten|
|00006350| 64 41 72 72 61 79 3a 20 | 6f 75 74 20 6f 66 20 6d |dArray: |out of m|
|00006360| 65 6d 6f 72 79 5c 6e 22 | 29 3b 0a 20 20 20 20 20 |emory\n"|);. |
|00006370| 20 65 6c 73 65 20 7b 0a | 09 20 64 6f 20 7b 0a 09 | else {.|. do {..|
|00006380| 20 20 20 20 2a 20 54 61 | 72 67 65 74 20 2b 2b 20 | * Ta|rget ++ |
|00006390| 3d 20 2a 20 53 6f 75 72 | 63 65 20 2b 2b 3b 0a 09 |= * Sour|ce ++;..|
|000063a0| 20 7d 20 77 68 69 6c 65 | 20 28 69 20 2d 2d 20 3e | } while| (i -- >|
|000063b0| 20 30 29 3b 0a 0a 09 20 | 46 72 65 65 20 28 2a 20 | 0);... |Free (* |
|000063c0| 45 6c 6d 74 43 6f 75 6e | 74 20 2a 20 45 6c 6d 74 |ElmtCoun|t * Elmt|
|000063d0| 53 69 7a 65 2c 20 2a 20 | 41 72 72 61 79 50 74 72 |Size, * |ArrayPtr|
|000063e0| 29 3b 0a 09 20 2a 20 45 | 6c 6d 74 43 6f 75 6e 74 |);.. * E|lmtCount|
|000063f0| 20 2b 3d 20 2a 20 45 6c | 6d 74 43 6f 75 6e 74 3b | += * El|mtCount;|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.